1、創(chuàng)建數(shù)據(jù)庫(kù)CREATE DATABASE _databasename
--創(chuàng)建一個(gè)mytest的數(shù)據(jù)庫(kù)
CREATE DATABASE mytest;
--創(chuàng)建一個(gè)mytest的數(shù)據(jù)庫(kù)并設(shè)置默認(rèn)字符編碼
CREATE DATABASE mytest DEFAULT CHARACTER SET "utf8";
2、查看已創(chuàng)建的所有數(shù)據(jù)庫(kù)SHOW DATABASES
SHOW DATABASES;
3、使用數(shù)據(jù)庫(kù)USE _databasename
--使用mytest數(shù)據(jù)庫(kù)
USE mytest;
4、創(chuàng)建數(shù)據(jù)表CREATE TABLE _tablename
--創(chuàng)建一個(gè)名為user的數(shù)據(jù)表
CREATE TABLE 'user'(
id SMALLINT,
username VARCHAR(20),
age TINYINT
);
5、查看當(dāng)前數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)表SHOW TABLES
SHOW TABLES;
6、查看當(dāng)前數(shù)據(jù)表中的結(jié)構(gòu)DESC _tablename
--查看hurujiuser表
DESC hurujiuser;
7、查看創(chuàng)建數(shù)據(jù)庫(kù)時(shí)的描述SHOW CREATE TABLE _tablename
--查看hurujiuser
SHOW CREATE TABLE hurujiuser;
8、插入記錄INSERT tablename VALUES
--向user表中插入一條記錄
INSERT user VALUES("1","huruji","18");
--向user表中插入一條記錄只包含名字
INSERT user(username) VALUES("xie");
--向user表中同時(shí)插入多條記錄
INSERT user VALUES(2,,"xie",10),
(3,"zhi",12),
(4,"huruwa",20);
9、查看數(shù)據(jù)表中的所有記錄SELECT * FROM _tablename
--查看cms_user
SELECT * FROM cms_user;
10、修改數(shù)據(jù)表名字 RENAME...
ALTER TABLE hurujiuser RENAME TO xieuser;
ALTER TABLE xieuser RENAME AS hurujiuser;
ALTER TABLE hurujiuser RENAME xieuser;
RENAME TABLE xieuser TO hurujiuser;
11、添加字段ADD
--添加一個(gè)字段
ALTER TABLE hurujiuser ADD card CHAR(18);
--一次添加多個(gè)字段
ALTER TABLE hurujiuser ADD test CHAR,
ADD test2 INT(11),
ADD test3 VARCHAR(20);
12、刪除字段DROP
--刪除一個(gè)字段
ALTER TABLE hurujiuser DROP test;
--一次刪除多個(gè)字段
ALTER TABLE hurujiuser DROP test2,
DROP test3;
--同時(shí)添加和刪除字段
ALTER TABLE hurujiuser ADD email VARCHAR(50),
DROP age;
13、修改字段MODIFY
ALTER TABLE hurujiuser MODIFY eamil VARCHAR(200) NOT NULL DEFAULT "myuser@qq.com";
14、修改字段位置MODIFY
--將email字段移至addr字段之后
ALTER TABLE hurujiuser MODIFY email VARCHAR(200) NOT NULL DEFAULT "myuser@qq.com" AFTER addr;
--將username字段移至第一位
ALTER TABLE hurujiuser MODIFY username CARCHAR(20) NOT NULL UNIQUE FIRST;
15、添加主鍵ADD PRIMARY KEY
ALTER TABLE hurujiuser ADD PRIMARY KEY(username);
16、添加唯一ADD UNIQUE
ALTER TABLE hurujiuser ADD UNIQUE(email);
17、為兩個(gè)字段添加唯一索引ADD UNIQUE INDEX
ALTER TABLE hurujiuser ADD UNIQUE INDEX mul_age_num(age,num);
18、刪除唯一索引DROP
ALTER TABLE hurujiuser DROP mul_age_num;
19、刪除數(shù)據(jù)表DROP TABLE _tablename
DROP TABLE hurujiuser;
20、將查詢(xún)結(jié)果插入到新的表中
--將testinsert 中的id,username插入表mytest中
INSERT mytest SELECT id,username FROM testinsert;
21、更改數(shù)據(jù)UPDATE
--將所有記錄的age改為15
UPDATE hurujiuser SET age=15;
--將id=1的記錄的age改為2,email為id@qq.com
UPDATE hurujiuser SET age=2,email="id@qq.com" WHERE id=1;
22、徹底清空表格TRUNCATE
TRUNCATE TABLE hurujiuser;
23、查詢(xún)數(shù)據(jù)SELECT ... FROM ...
--查詢(xún)所有記錄
SELECT * FROM hurujiuser;
--查詢(xún)記錄中的id和username
SELECT id username FROM hurujiuser;
--查詢(xún)id=1的記錄
SELECT * FROM hurujiuser WHERE id=1;
--查詢(xún)id>=6的所有記錄
SELECT * FROM hurujiuser WHERE id>=6;
24、模糊查詢(xún)LIKE
%:代表0個(gè)、1個(gè)或者多個(gè)任意字符
_:代表1個(gè)任意字符
--搜索名字中含有張字的用戶(hù)
SELECT * FROM cms_user WHERE username LIKE "%張%";
--搜索名字中姓張的用戶(hù)
SELECT * FROM cms_user WHERE username LIKE "張%";
--搜索姓名為4個(gè)字的用戶(hù)
SELECT * FROM cms_user WHERE username LIKE "____";
25、分組查詢(xún)GROUP BY
SELECT * FROM cms_user GROUP BY proid;
26、顯示分組后的詳情GROUP_CONCAT
--顯示每個(gè)組中的姓名
SELECT id,sex,GROUP_CONCAT(username) FROM cms_user GROUP BY sex;
27、二次篩選HAVING
SELECT sex,GROUP_CONCAT(username) AS users,
COUNT(*) AS totalUsers,
MAX(age) AS max_age,
SUM(age) AS total_age
FROM cms_user GROUP BY sex HAVING COUNT(*)>2;
28、排序ORDER BY
--升序默認(rèn)
SELECT * FROM cms_user ORDER BY id;
SELECT * FROM cms_user ORDER BY id ASC;
--降序
SELECT * FROM cms_user ORDER BY id DESC;
29、隨機(jī)顯示RAND()
SELECT * FROM cms_user RAND();
30、限制記錄LIMIT
--顯示前3條
SELECT * FROM cms_user LIMIT 3;
SELECT * FROM cms_user LIMIT 0,3;
--顯示4,5,6三條
SELECT * FROM cms_user LIMIT 3,3;
31、聚合函數(shù)MAX(),MIN(),AVG(),SUM()
SELECT id,sex,age,GROUP_CONCAT(username),
COUNT(*) AS totalusers,
MAX(age) AS max_age,
MIN(age) AS min_age,
AvG(age) AS avg_age,
SUM(age) AS sum_age
FROM cms_user
WHERE id>=1
GROUP BY sex
HAVING COUNT(*)>=2 ORDER BY age DESC LIMIT 2;
32、內(nèi)連接查詢(xún)
SELECT u.id,u.username,u.email,u.sex,p.proname
FROM cms_user AS u
INNER JOIN provinces AS p
ON u.proid=p.id;
SELECT u.id,u.username,p.proName
FROM provinces AS p
CROSS JOIN cms_user AS u
ON p.id=u.proid;
SELECT u.id,u.username,u.sex,p.proName
FROM cms_user AS u JOIN
provinces AS p
ON u.proid=p.id
WHERE u.sex="男";
33、聯(lián)合查詢(xún)UNION
SELECT username FROM employee UNION SELECT username FROM cms_user;
34、子查詢(xún)
SELECT id username FROM employee WHERE depId IN(SELECT id FROM department);
35、添加外鍵FOREIGN KEY
CREATE TABLE IF NOT EXISTS employee(
id SMALLINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE,
depId TINYINT UNSIGNED,
CONSTRAINT emp_fk_dep FOREIGN KEY(depId) REFERENCES department(id)
)ENGINE=INNODB;
ALTER TABLE employee ADD CONSTRAINT emp_fk_dep FROEIGN KEY(depId) REFERENCES department(id);