1、Mysql創建資料庫: 語法:create database 資料庫名; 例1,創建一個名為admin的資料庫 MariaDB [mysql]> create database admin; Query OK, 1 row affected (0.00 sec) 在linux界面下可以使用mys... ...
1、Mysql創建資料庫: 語法:create database 資料庫名; 例1,創建一個名為admin的資料庫 MariaDB [mysql]> create database admin; Query OK, 1 row affected (0.00 sec) 在linux界面下可以使用mysqladmin命令創建資料庫。 語法:mysqladmin -u root -p create 資料庫名。 [root@localhost ~]# mysqladmin -u root -p create admin Enter password: 輸入你的密碼 MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | admin | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec) 2、刪除資料庫: 語法:drop database 資料庫名; linux界面下使用mysqladmin -u root -p drop 資料庫名。 例2,刪除admin這個資料庫 MariaDB [(none)]> drop database admin; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec) 3、MySQL的數據類型 (1)整數的數據類型: 類型 大小 範圍(有符號) 範圍(無符號) 用途 TINYINT 1位元組 (-128,127) (0,255) 小數值 SMALLINT 2位元組 (-32768,32767) (0,65535) 大數值 MEDIUMINT 3位元組 (-8388608,8388607) (0,16777215) 大數值 INT或INTEGER 4位元組 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大數值 BIGINT 8位元組 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 極大整數值 FLOAT 4位元組 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 單精度浮點型 double 8位元組 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 雙精度浮點型 (2)日期和時間的類型 DATE 3位元組 1000-01-01,9999-12-31 YYYY-MM-DD 日期 TIME 3位元組 '-838:59:59'/'838:59:59' HH:MM:SS 時間 YEAR 1位元組 1901-2155 YYYY 年份 DATETIME 8位元組 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期加時間 TIMESTAMP 4位元組 1970-01-01 00:00:00/2038 YYYYMMDDHHMMSS 混合時間,時間戳 (3)字元串類型 CHAR 0-255位元組 定常字元串 VARCHAR 0-65535位元組 變長字元串 TINTBLOB 0-255位元組 二進位字元串 TINYTEXT 0-255位元組 短文本字元串 BLOB 0-65535 二進位長文本 TEXT 0-65535 長文本 MEDIUMBLOB 0-16777215位元組 二進位中等長度文本 MEDIUMTEXT 0-16777215位元組 中等長度文本 LONGBLOB 0-4 294 967 295位元組 二進位形式的極大文本數據 LONGTEXT 0-4 294 967 295位元組 極大文本 4、創建數據表 語法:create table 表名 (列名 列類型); 例3,創建Student表 MariaDB [admin]> create TABLE student ( id int not null, name varchar(20) not null, sex char(5) not null, phone varchar(20) not null, primary key (id)) engine=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.01 sec) MariaDB [admin]> show columns from student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(20) | NO | | NULL | | | sex | char(5) | NO | | NULL | | | phone | varchar(20) | NO | | NULL | | +-------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) 5、刪除表 語法:drop table 表名。 例4:刪除student表 MariaDB [admin]> drop table student; Query OK, 0 rows affected (0.00 sec) MariaDB [admin]> show tables ; Empty set (0.00 sec) 6、修改表 語法:alert table 表名 修改選項; 修改選項: add column 列名 類型;(插入列) change column 舊列名 新列名 新列類型;(更改原有列) alter column 列名{set default 預設值|drop default}修改預設值|刪除預設值 modify column 列名 類型 (修改列的類型) drop column 列名 (刪除列) rename to 新表名(重命名此表) 例5:給student表添加email欄位,類型為varchar MariaDB [admin]> alter table student add column email varchar(30); Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [admin]> show columns from student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | char(30) | YES | | NULL | | | sex | char(5) | NO | | NULL | | | phone | varchar(20) | NO | | NULL | | | email | varchar(30) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec) 例6:更改student表的name列為st_name; MariaDB [admin]> alter table student change column name st_name char(10); Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [admin]> show columns from student; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | st_name | char(10) | YES | | NULL | | | sex | char(5) | NO | | NULL | | | phone | varchar(20) | NO | | NULL | | | email | varchar(30) | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ 7、查詢數據 語法:select 列名 from 表名 where 查詢條件 limit N limit 設定返回的記錄數。 例7:查詢mysql資料庫里user表的user和password列,只顯示root用戶。 MariaDB [mysql]> select user,password from user where user = 'root' ; +------+----------+ | user | password | +------+----------+ | root | | | root | | | root | | | root | | +------+----------+ 4 rows in set (0.00 sec) 8、插入數據 語法:insert into 表名 (列1,列2,···,列3)values (值1,值2,···,值3); 添加的值如果是字元型必須用單引號或雙引號引起來。 例8:添加數據到表student; MariaDB [admin]> insert into student (id,st_name,sex,phone,email) values (1,'whr','man',1766262166,'[email protected]'); Query OK, 1 row affected (0.00 sec) MariaDB [admin]> select * from student; +----+---------+-----+------------+---------------+ | id | st_name | sex | phone | email | +----+---------+-----+------------+---------------+ | 1 | whr | man | 1766262166 | [email protected] | +----+---------+-----+------------+---------------+ 1 row in set (0.01 sec) 9、更新數據 語法:update 表名 set 列1=新值1,列2=新值2 where 條件; 例9:修改id 1的名字為admin MariaDB [admin]> update student set st_name = 'admin' where id =1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [admin]> select * from student; +----+---------+-----+------------+---------------+ | id | st_name | sex | phone | email | +----+---------+-----+------------+---------------+ | 1 | admin | man | 1766262166 | [email protected] | +----+---------+-----+------------+---------------+ 1 row in set (0.00 sec) 10、刪除數據 語法:delete from 表名 where 條件; 例10:刪除id為1的所有數據。 MariaDB [admin]> delete from student where id = 1; Query OK, 1 row affected (0.00 sec) MariaDB [admin]> select * from student; Empty set (0.00 sec) 11、where子句的運用 where子句是用來篩選數據。 語法:以select為例,select 列1,列2,···,列n from 表1,表2,···,表n where 條件1 and|or 條件2; where子句的操作符有以下幾種: = 是否相等 <>,!= 不等於 > 大於 < 小於 >= 大於等於 <= 小於等於 例11:查詢mysql庫user表中的host=localhost的所有數據。 MariaDB [mysql]> select host,user from user where host = 'localhost'; +-----------+------+ | host | user | +-----------+------+ | localhost | | | localhost | root | | localhost | whr | +-----------+------+ 3 rows in set (0.01 sec) 12、like語句 語法:select * form 表名 where 列名1 like 所要篩選的字元; 例12:查詢mysql庫user表中的host 包含main的數據。 MariaDB [mysql]> select host,user from user where host like '%main'; +-----------------------+------+ | host | user | +-----------------------+------+ | localhost.localdomain | | | localhost.localdomain | root | +-----------------------+------+ 2 rows in set (0.00 sec) %為通配符,匹配任意長度的任意字元。 13、orderby語句 語法:select 列名1 ··· from 表1··· order by 列名1 ASC|DESC; ASC為順序,DESC為逆序 例13:查詢student表中的數據安st_name進行順序排序。 MariaDB [admin]> select * from student order by st_name ASC; +----+---------+-----+------------+---------------+ | id | st_name | sex | phone | email | +----+---------+-----+------------+---------------+ | 2 | admin | man | 1766262166 | [email protected] | | 3 | main | man | 1766262166 | [email protected] | | 5 | main1 | man | 1766262166 | [email protected] | | 4 | main3 | man | 1766262166 | [email protected] | | 1 | whr | man | 1766262166 | [email protected] | +----+---------+-----+------------+---------------+ 5 rows in set (0.01 sec) 14、union操作符 用於把兩個或兩個以上的select語句連接起來。 語法:select 語句1 union select 語句2 where 條件語句。 15、MySQL的正則表達式 模式 描述 ^ 匹配輸入字元串的開始位置 $ 匹配字元串結束的位置 . 匹配除‘\n’以外的任意單個字元 [...] 字元集合,匹配包含任意一個的字元 [^...] 負值字元集合,匹配未包含的任意字元 p1|p2|p3 匹配p1或p2或p3 * 匹配前面的子表達式零次或多次 + 匹配前面的子表達式一次或多次 {n} n是一個非負整數,匹配確定的n次 {n,m} m和n均為負整數,最少匹配n次,最多匹配m次 例14:查詢student中st_name以m開頭的數據: MariaDB [admin]> select * from student where st_name regexp '^m'; +----+---------+-----+------------+---------------+ | id | st_name | sex | phone | email | +----+---------+-----+------------+---------------+ | 3 | main | man | 1766262166 | [email protected] | | 4 | main3 | man | 1766262166 | [email protected] | | 5 | main1 | man | 1766262166 | [email protected] | +----+---------+-----+------------+---------------+ 3 rows in set (0.00 sec)