常見數(shù)據(jù)類型:
4.1 double浮點型,例如double(5,2)表示最多5位,其中必須有2位小數(shù),即最大值為999.99;
4.2 char固定長度字符串類型;char(10)'abc '
4.3 varchar可變長度字符串類型;varchar(10)'abc'
4.4 text字符串類型4.5 blob二進制類型
4.6 date提起類型,格式為:yyyy-MM-dd;
4.7 time時間類型,格式為:hh:mm:ss;
4.8 datetime日期時間類型,格式為:yyyy-MM-dd hh:mm:ss5. 在MySQL中,字符串類型和日期類型都要用單引號括起來。'Myname' '2018-01-01'。
創(chuàng)建數(shù)據(jù)庫create database 數(shù)據(jù)庫名 character set utf8;或者create database 數(shù)據(jù)庫名 charset=utf8;
使用(切換)數(shù)據(jù)庫use 數(shù)據(jù)庫名
建表命令;
CREATE TABLE 表名(
列名1 列名類型 [約束],
列名2 列名類型 [約束],
.....
列名N 類的類型 [約束]
)
定義學(xué)生表:
id name age email
CREATE TABLE students(
id bigint,
name varchar(20),
email varchar(20),
age int
);
添加一列(本來我已經(jīng)有4個字段,又想添加一個新的字段)
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型;
查看表的字段信息
desc 表名。
修改一個表的字段類型
ALTER TABLE 表名 MODIFY 字段名 數(shù)據(jù)類型;
刪除一列
添加一列ALTER TABLE students ADD nums varchar(10);
刪除一列ALTER TABLE students drop nums;
修改表名
RENAME TABLE 原始表名 TO 要修改的表名;
查看表的創(chuàng)建細(xì)節(jié)
SHOW CREATE TABLE 表名;
修改表的字符集gbk
ALTER TABLE students character set gbk;
修改表的列名
ALTER TABLE students change name newname varchar(20);
刪除表
DROP TABLE 表名;
查詢表中的所有數(shù)據(jù)
SELETE * FROM 表名;
插入操作:
INSERT INTO 表名 ( 列名1,列名2 ) VALUES (列值1, 列值2...);
- 添加多條數(shù)據(jù)(批量插入):
VALUES后面以逗號隔開
INSERT INTO 表名(列名1,列名2....) VALUES(列值1,列值2),(列值1,列值2)....;
更新操作
UPDATE 表名 SET 列名1=列值1, 列名2=列值2... WHERE 列名=值
把所有學(xué)生的分?jǐn)?shù)改為90
UPDATE students SET score=90;
把姓名為zs的學(xué)生分?jǐn)?shù)修改為60
UPDATE students SET score=60 WHERE name='zs';
把姓名為lisi的年齡修改為20和分?jǐn)?shù)修改為70
UPDATE students SET age=30,score=70 WHERE name='lisi';
把wangwu的年齡在原來基礎(chǔ)上+1歲
UPDATE students SET age=age+1 WHERE name='wangwu'
修改數(shù)據(jù)庫密碼步驟:
mysqladmin -u root -p password 123456
刪除操作# 如果不加過濾條件就是刪除所有數(shù)據(jù)
DELETE FROM 表名 [WHERE 列名=值]
刪除所有數(shù)據(jù)
TRUNCATE TABLE 表名;
查詢所有列
SELECT * FROM 表名;
查詢指定的列
SELECT 列名1,列名2 FROM 表名;
條件查詢
- BETWEEN...AND; 值在什么范圍
- IN(set);
- IS NULL; (為空)
- IS NOT NULL; (不為空)
- AND; 與
- OR; 或
- NOT; 非
查詢性別為男,并且年齡為20的學(xué)生記錄# 添加性別字段
ALTER table students add gender varchar(2);
查詢
SELECT * FROM students WHERE gender='男' AND age=20;
查詢學(xué)號為1001 或者 名為 zs 的記錄
SELECT * FROM students WHERE id=1001 OR name='zs';
查詢學(xué)號為1001 , 1002 ,1003的記錄
SELECT * FROM students WHERE id = 1001 OR id = 1002 OR id = 1003;
SELECT * FROM students WHERE id in (1001,1002,1003);
查詢年齡為null的記錄
SELECT * FROM students WHERE age IS NULL;
查詢年齡在18-20之間的學(xué)生記錄
SELECT * FROM students WHERE age>= 18 AND age<=20;
SELECT * FROM students WHERE age BETWEEN 18 AND 20;
查詢性別非男的學(xué)生記錄
SELECT * FROM students WHERE gender != '男';
查詢姓名不為null的學(xué)生記錄
SELECT * FROM students WHERE name IS NOT NULL;
模糊查詢
- 根據(jù)指定的關(guān)鍵字進行查詢
- 使用LIKE關(guān)鍵字后跟通配符
- 通配符
- _:任意一個字母
- %:任意0~n個字母
- 使用
查詢姓名由5個字母構(gòu)成的學(xué)生記錄可以事先自己添加好各種數(shù)據(jù)# 5個字母就是5個下劃線
SELECT * FROM students WHERE name LIKE '_____';
查詢姓名由5個字母構(gòu)成,并且第5個字母為's'的學(xué)生記錄
SELECT * FROM students WHERE name LIKE '____s';
查詢姓名以'm'開頭的學(xué)生記錄
SELECT * FROM students WHERE name LIKE 'm%';
查詢姓名中第二個字母為'u'的學(xué)生記錄
SELECT * FROM students WHERE name LIKE '_u%';
查詢姓名中包含's'字母的學(xué)生記錄SELECT * FROM students WHERE name LIKE '%s%';
mysql -uroot -p;
進入數(shù)據(jù)庫
SHOW DATABASES;
查看庫
DROP DATABASE 庫名 ;
刪除數(shù)據(jù)庫
USE 數(shù)據(jù)庫;
使用(切換)數(shù)據(jù)庫
SELECT * FROM 表名;
查看表里面的內(nèi)容
SHOW CREATE TABLE 表名;
查看表的創(chuàng)建細(xì)節(jié)
CREATE TABLE 表名;
往表里添加內(nèi)容
DESC 表名;
查看表的結(jié)構(gòu)
CREATE TABLE 表名(
列名1 列名類型 [約束],
列名2 列名類型 [約束],
.....
列名N 類的類型 [約束]
);
建立表格的框架
UPDATE 表名 SET 列名1=列值1, 列名2=列值2... WHERE 列名=值
更新并修改指定條件
SELECT * FROM students WHERE name LIKE 'm%';
查詢姓名以'm'開頭的學(xué)生記錄
查詢性別為男,并且年齡為20的學(xué)生記錄# 添加性別字段
ALTER table students add gender varchar(2);
查詢
SELECT * FROM students WHERE gender='男' AND age=20;