-
sql 語句:DDL 語句,DML 語句,DQL 語句,DCL 語句
DDL 語句操作數據庫以及表的 create, drop, alter
DML 語句對表數據進行 insert(增加),delete(刪除),update(修改)
DQL 語句對表數據進行 select 查詢
mysql 數據庫約束:主鍵約束,唯一約束,非空約束
控制臺連接數據庫
//?登錄格式1????mysql?-u用戶名?-p密碼 mysql?-uroot?-proot //?登錄格式2????mysql?-hip地址?-u用戶名?-p密碼 mysql?-u127.0.0.1?-uroot?-proot //?登錄格式3????mysql?--host=ip地址?--user=用戶名?--password=密碼 mysql?--host=127.0.0.1?--user=root?--password=root //?exit?退出數據庫
sql 結構化查詢語言
DDL 數據定義語言
用來定義數據庫對象:數據庫,表,列。關鍵字:create, drop, alter
DML 語句 數據操作語言
用來對數據庫中表的數據進行增刪改查。關鍵字:insert, delete, update
DQL 語句 數據查詢語言
用來查詢數據庫中表的記錄(數據)。關鍵字:select, where
DCL 語句 數據控制語言
用來定義數據庫的訪問權限和安全級別,及創建用戶。關鍵字:GRANT, REVOKE
sql 通用語法
sql 語句可以單行或多行,以分號結尾
可以使用空格和縮進來增強語句的可讀性
mysql 數據庫的 sql 語句不區分大小寫,關鍵字建議使用大寫
DDL 語句
創建數據庫
--??直接創建數據庫 ????CREATE?DATABASE?數據庫名; --??判斷是否存在并創建數據庫 ????CREATE?DATABASE?IF?NOT?EXISTS?數據庫名; --??創建數據庫并指定字符集(編碼類型) ????CREATE?DATABASE?數據庫名?CHARACTER?SET?字符集; ????CREATE?DATABASE?db1; ????CREATE?DATABASE?IF?NOT?EXISTS?db2; ????CREATE?DATABASE?db3?CHARACTER?SET?gbk; --??查看某個數據庫 ????SHOW?CREATE?DATABASE?數據庫名; ????SHOW?CREATE?DATABASE?db1;
修改數據庫
--??修改數據庫字符集格式 ????ALTER?DATABASE?數據庫名?DEFAULT?CHARACTER?SET?字符集; ????ALTER?DATABASE?db3?DEFAULT?CHARACTER?SET?UTF8;
刪除數據庫
--??刪除數據庫 DROP?DATABASE?數據庫名; DROP?DATABASE?db4;
使用數據庫
--??查看正在使用的數據庫 ????SELECT?DATABASE(); --??切換數據庫 ????USE?數據庫名; ????USE?DB2;
創建表
CREATE?TABLE?表名?(字段名1,字段類型1,字段名2,字段類型2......); --??建議寫成如下格式 CREATE?TABLE?表名?( ????字段名1,字段類型1, ????字段名2,字段類型2, ????...... ); CREATE?TABLE?student( ????id?int, ????name?varchar(10), ????age?int, ????birthday?date, ????sex?char(1) );
mysql 數據庫常用類型
類型 描述 int 整型 double 浮點型 varchar 字符串型 data 日期類型:yyyy-mm-dd 詳細的數據類型
分類 類型名稱 說明 整數類型 tinylnt 很小的整數 smallint 小的整數 mediumint 中等大小的整數 int(integer) 普通大小的整數 小數類型 float 單精度浮點數 double 雙精度浮點數 decimal (m,d) 壓縮嚴格的定點數 日期類型 year YYYY 1901-2155 time HH:MM:SS data YYYY-MM-DD datatime YYYY-MM-DD HH:MM:SS timestamp 文本,二進制類型 CHAR(M) M 為 0~255 之間的整數 VARCHAR(M) M 為 0~65535 之間的整數 TINYBLOB 允許長度 0~255 字節 BLOB 允許長度 0~65535 字節 MEDIUMBLOB 允許長度 0~167772150 字節 LONGBLOB 允許長度 0~4294967295 字節 TINYTEXT 允許長度 0~255 字節 TEXT 允許長度 0~65535 字節 MEDIUMTEXT 允許長度 0~167772150 字節 LONGTEXT 允許長度 0~4294967295 字節 VARBINAPY(M) 允許長度 0~M 個字節的變長字節字符串 BINARY(M) 允許長度 0~M 個字節的變長字節字符串 查看表
--??查看某個數據庫中的所有表 ????SHOW?TABLES; --??查看表結構 ????DESC?表名; --??查看創建表的sql語句 ????SHOW?CREATE?TABLE?表名;
快速創建一個表結構相同的表
CREATE?TABLE?新表名?LIKE?舊表名; --??創建?s1?表,?表結構和student表結構相同 CREATE?TABLE?s1?LIKE?student;
刪除表
--??直接刪除表 DROP?TABLE?表名; --??判斷表是否存在并刪除表 DROP?TABLE?IF?EXISTS?表名; DROP?TABLE?db1; DROP?TABLE?IF?EXISTS?db2;
修改表結構
--??添加表列 ALTER?TABLE?表名?ADD?列名?類型; --??修改列類型 ALTER?TABLE?表名?MODIFY?列名?新的類型; --??修改列名 ALTER?TABLE?表名?CHANGE?舊列名?行列名?類型; --??刪除列 ALTER?TABLE?表名?DROP?列名; --??修改表名 RENAME?TABLE?表名?TO?新表名; --??修改字符集 ALTER?TABLE?表名?character?set?字符集;
DML 語句
插入記錄
1.關鍵字說明
INSERT?INTO?表名?-?表示往那張表添加數據 (字段名1,?字段名2,?...);????--?要給那些字段設置值 VALUES?(值1,?值2,?...);??--?設置的具體的值
值與字段必須對應,個數相同,類型相同
值的數據大小必須在字段的長度范圍之內
除了數組類型外,其他字段類型的值必須使用引號引起。(建議使用單引號)
如果要插入空值,可以不寫字段,或者插入 null
插入全部字段
--??所有的字段名都寫出來 ????INSERT?INTO?表名?(字段名1,?字段名2,?...)?VALUES?(值1,?值2,?...); --??不寫字段名 ????INSERT?INTO?表名?VALUES?(值1,?值2,?...);
插入部分數據
--??沒有添加數據的字段會使用null ????INSERT?INTO?表名?(字段名1,?字段名3,?...)?VALUES?(值1,?值3,?...);
案例
--??創建db3數據庫并使用 ????CREATE?DATABASE?db3; ????USE?db3; --??創建完整學生信息表,包括學員的id,姓名,年齡,性別,家庭地址,電話號碼,生日,數學成績,英語成績 CREATE?TABLE?student( ????id?int, ????name?varchar(20), ????age?int, ????sex?char(1), ????address?varchar(200), ????phone?varchar(20), ????birthday?date, ????math?double, ????english?double ); --??插入一條數據?順序可以打亂,字段名和值要對應 INSERT?INTO?student(id,name,sex,age,birthday,address,phone,math,english)values(1,'zhangsan','男','19','2010-12-11','北京市','18833336666',98.5,67); --??校驗插入的數據,查看student表的所有字段數據 SELECT?*?FROM?student;
蠕蟲復制
在已有的數據基礎上,將原來的數據進行復制,插入到對應的表中
--??語法格式化 INSERT?INTO?表名1?SELECT?*?FROM?表名2; --??創建student2表,student2結構和student表結構一樣 CREATE?TABLE?student?LIKE?student2; --??將student表中的數據添加到student2表中 INSERT?INTO?student?SELECT?*?FROM?student2; --??只復制student表中name,age字段數據到student2表中使用如下格式 INSERT?INTO?student2(name,age)?SELECT?name,age?FROM?student;
更新表記錄
--??不帶條件修改數據????全部修改 UPDATE?表名?SET?字段名=值; --??帶條件修改數據??????指定范圍修改 UPDATE?表名?SET?字段名=值?WHERE?字段名=值; --??關鍵字?UPDATE:?修改數據?SET:?修改哪些字段??WHERE:?指定條件 --??不帶修改條件,將所有的性別改為女 UPDATE?student?SET?sex='女'; --??帶條件修改數據,將id為2的學生性別修改為難 UPDATE?student?SET?sex='男'?WHERE?id=2; --??一次修改多列,把id為3的學生,年齡改為26,?address改為北京 UPDATE?student?SET?age=26,?address='北京'?WHERE?id=3;
刪除表記錄
--??不帶條件刪除數據 DELETE?FROM?表名; --??帶條件刪除數據 DELETE?FROM?表名?WHERE?字段名=值; --??帶條件刪除數據,刪除id為3的記錄 DELETE?FROM?student?WHERE?id=3; --??不帶條件刪除數據刪除表中的所有數據 DELETE?FROM?student;
truncate 刪除表記錄
delete 是將表中的數據一條一條刪除
truncate 是將整個表摧毀,重新創建一個新的表,新的表結構和原來的表結構一模一樣
TRUNCATE?TABLE?表名;
DQL 語句
簡單查詢
--創建student表 CREATE?TABLE?student( ????id?int, ????name?varchar(20), ????age?int, ????sex?char(1), ????address?varchar(200), ????phone?varchar(20), ????birthday?date, ????math?doub1e, ????english?doub1e ); --為student準備數據 INSERT?INTO?student?values(1,'閆妮',43,'女','北京市',?'12222222222',?'2019-02-12',92.5,88); INSERT?INTO?student?values(2,'郭富城',21,'男','上海市','1666666666',?'2018-06-O6',97.5,65.5); INSERT?INTO?student?values(4,?'張學友',34,'男','杭州市','17777777777','2013-11-17',69,65); INSERT?INTO?student?values(5,'成龍',51,'男','哈爾濱市','15555555555',?'2005-10-12',88,97); INSERT?INTO?student?values(6,'劉德華',57,'男','盤錦市','19999999999',?'2015-11-11',74.5,92.5); INSERT?INTO?student?values(7,'馬伊刺',42,'女','長沙市','18888888888'?,?'2008-03-26',86.5,71.5); INSERT?INTO?student?values(8,'黎明',49,'男','昆明市','11111111111','2000-09-14',77.5,60);I
查詢表所有數據
--??使用*表示所有列 SELECT?*?FROM?表名; SELECT?*?FROM?student; --??寫出查詢每列的名稱 SELECT?字段名1,字段名2,字段名3,...?FROM?表名; SELECT?id,name,age,sex,address,phone?FROM?表名;
查詢指定列
--??寫出查詢每列的名稱 SELECT?字段名1,字段名2,字段名3,...?FROM?表名; SELECT?id,name,age?FROM?表名;
別名查詢
--??查詢時給列、表指定別名需要使用as關鍵字 --??使用別名的好處是方便觀看和處理查詢到的數據 SELECT?字段名1?AS?別名,?字段名2?AS?別名,...?FROM?表名; SELECT?name?AS?姓名,?age?AS?年齡?FROM?student;
清除重復值
--??查詢指定列?并且?結果?不出現重復數據 SELECT?DISTINCT?字段名?FROM?表名; --??查詢name,age列并且?結果?不出現重復name SELECT?DISTINCT?name,?age?FROM?student;
查詢結果參與運算
參與運算的必須是數值類型,查詢顯示新列,不會改動原數據
--??某列數據和固定值運算 SELECT?列名1?+?固定值?FROM?表名; --??某列數據和其他列數據參與運算 SELECT?列名1?+?列名2?FROM?表名; SELECT?math+english?總成績?FROM?student; SELECT?name?姓名,sex?性別,math?數學成績,english?英語成績,math+english?總成績?FROM?student; SELECT?name,age+10?FROM?student;
條件查詢
--??語法格式 SELECT?字段名?FROM?表名?WHERE?條件; --??準備數據 INSERT?into?hero?values(1,'業瑟',35,'男',320,'戰上',3000,0,1,'2017-05-14',14.2); INSERT?into?hero?values(2,'阿呆',19,'女',470,'刺客',1500,1100,0,'2019-06-11',15.6); INSERT?into?hero?values(3,'老人子',75,'男',430,'戰士',2500,0,1,?'2016-11-18',17.7); INSERT?into?hero?values(4,?'呂布',40,'男',500,'悅士',2700,1000,1,?'?2015-04-22',12.2); INSERT?into?hero?values(5,'甄姬',27,'女',210,'法師'?,1400,1900,0,'2018-06-06',13.1); INSERT?into?hero?values(6,'旗嫩',25,'女',370,'時手',1600,1200,1,'2013-02-24',11.2); INSERT?into?hero?values(7,'德瑪調亞',35,'男',220,'戰上'?,?39oo,1500,1,'2011-02-14',11.2); INSERT?into?hero?values(8,'孫尚否',24,'女',260,'時手',1300,900,0,'2020-03-12',9.2); INSERT?into?hero?values(9,'孫策',39,'',280,'戰上',3200,1100,1,'2016-07-14',16.7); INSERT?into?hero?values(10,'孫悟空',32,'男',460,'戰上',2900,1300,o,'2013-02-11',17.2); INSERT?into?hero?values(11,'公孫策',37,'男',210,'法師',2200,700,1,?'2019-09-16',11.4); INSERT?into?hero?values(12,'上行孫',22,'男',195,?'W客',1400,1700,1,'2013-02-16',12.4); INSERT?into?hero?values(13,'后蕾',39,'男',420,"射手',780,700,0,'2019-01-19'?,NULL);
比較運算符
--??>?大于?<?小于?<=?小于等于??>=?大于等于??<>??!=??不等于 SELECT?*?FROM?hero?where?條件(字段?運算符?篩選條件); --??查詢?定位為射手的英雄 SELECT?*?FROM?hero?where?location='射手';
邏輯運算符
--??and?多個條件同時滿足 --??or?多個條件其中一個滿足 --??not?不滿足 SELECT?*?FROM?hero?where?age>35?AND?life>2500; SELECT?*?FROM?hero?where?age>35?OR?max_score<1; SELECT?*?FROM?hero?where?id=1?OR?if=4?OR?id=5; --??in?關鍵字?in里面的每個數據都會作為一次條件 SELECT?*?FROM?hero?where?id?in?(1,4,5);
范圍
--??BETWEEN?值1?AND?值2??表示從值1到值2的范圍,包頭包尾 SELECT?*?FROM?hero?WHERE?grounding_data?BETWEEN?'2013-01-01'?AND?'2017-01-01'; SELECT?*?FROM?hero?WHERE?grounding_data?>=?'2013-01-01'?AND?grounding_data?<=?'2017-01-01';
like 模糊查詢
--??LIKE?表示模糊查詢 SELECT?*?FROM?表名?WHERE?字段名?LIKE?'通配符字符串'; --??MySQL?通配符有兩個?%:?表示0個或多個字符??_:?表示一個字符 --??查詢姓孫的英雄 SELECT?*?FROM?hero?WHERE?name?LIKE?'孫%'; --??查詢名字中含有孫字的英雄 SELECT?*?FROM?hero?WHERE?name?LIKE?'%孫%'; --??查詢姓孫,且姓名是三個字的英雄 SELECT?*?FROM?hero?WHERE?name?LIKE?'孫__';
排序
--??ORDER?BY?子句?可以將查詢的結果進行排序?(排序只是顯示方式,?不會改變數據庫中數據的順序) SELECT?字段名?FROM?表名?WHERE?字段=值?ORDER?BY?字段名?[ASC|DESC]; --??ASC?升序,默認的?DESC?降序 --??單列排序?使用一個字段進行排序 --??查詢年齡小于35的英雄,按照年齡升序排列 SELECT?*?FROM?hero?WHERE?age<=35?ORDER?BY?age?ASC; --??組合排序?先使用第一個字段進行排序?如果第一個字段相同,才使用第二個字段進行排序。以此類推 SELECT?字段名?FROM?FROM?表名?WHERE字段=值?ORDER?BY?字段名1?[ASC|DESC],?字段名2?[ASC|DESC]; --??查詢年齡小于35歲的英雄?按照年齡升序?如果年齡相同?按照生命值降序排列 SELECT?*?FROM?hero?WHERE?age<=35?ORDER?BY?age?ASC,lifr?desc;
聚合函數
之前的查詢都是橫向查詢,根據條件一行一行的進行判斷,而聚合函數查詢是縱向查詢,對一列的值進行計算,返回結果值。聚合函數會忽略空值
count: ?統計指定列的記錄數(行數),值為NULL的不統計
sum: ?計算指定列的數值和,如果不是數值,計算結果為0
max: ?計算指定列的最大值
min: ?計算指定列的最小值
avg: ?計算指定列的平均值,如果不是數值,計算結果為0
--??聚合函數寫在sql語句SELECT?后?字段名的地方 SELECT?字段名...?FROM?表名; SELECT?COUNT(age)?FROM?表名; --??查詢英雄的總數 SELECT?COUTN(max_SCORE)?FROM?hero; --??對于NULL的記錄不統計,只要只用全部字段為衡量標準就不會有遺漏的錯誤統計出現 SELECT?COUNT(*)?FROM?hero;
分組查詢
--??分組查詢是使用?GROUP?BY語句對查詢信息進行分組??[HAVING?條件]?分組后的篩選 SELECT?字段1,字段2...?FROM?表名?GROUP?BY?分組字段?[HAVING?條件]; SELECT?*?FROM?hero?FROUP?BY?sex; --??這就sql語句會將sex相同的數據作為一組,但是會返回每組的第一條,沒有任何意義 --??分組的目的就是為了統計,一般分組會和聚合函數一起使用 --??分組后聚合函數?不操作所有數據,而是操作一組數據 SELECT?SUM(life)?FROM?hero?GROUP?BY?sex;?--??返回兩組的生命值之和 --??當使用摸個字段分組時,需要將這個字段查詢出來,否則看不到數據是屬于哪組的 SELECT?SUM(life),sex?FROM?hero?GROUP?BY?sex; --??查詢年齡小于30的,按性別進行分組,統計每組的人數 --?1.先過濾年齡小于30的?2.分組?3.最后統計人數 SELECT?sex,COUNT(*)?FROM?hero?WHERE?age<30?GROUP?BY?sex; --??查詢年齡大于25的?按性別分組,統計每組人數,?并只顯示性別人數大于2的數據 --??錯誤 SELECT?sex,conut(*)?FROM?hero?WHERE?age<30?GROUP?BY?sex?WHERE?COUNT(*)>2; --??正確 SELECT?sex,conut(*)?FROM?hero?WHERE?age<30?GROUP?BY?sex?HAVING?COUNT(*)>2;
limit語句 分頁
limit語句是限制的意思,限制查詢記錄的條數。limit語句要放在最后面
--??LIMIT語法格式 LIMIT?offset,length;??LIMIT?length; --??offset是指偏移量,調過的記錄數量,默認為0??length是指需要顯示的總記錄數 --??查詢hero表,從第三條開始顯示,顯示6條 SELECT?*?FROM?hero?LIMIT?2,6;
數據庫約束
約束種類
PRIMARY KEY : ?主鍵
UNIQUE : 唯一
NOT NULL : 非空
DEFAULT : 默認
FOREIGN KEY : 外鍵
主鍵約束
每個表有且只有一個主鍵,通常以id為主鍵
主鍵的特點:
主鍵必須包含唯一的值(不重復)
主鍵不能包含NULL值
--??創建主鍵 字段名?字段類型?PRIMARY?KEY; --??創建表hero1,包含字段(id,name,age)將id作為主鍵 CREATE?TABLE?hero1( ?id?int?PRIMARY?KEY, ????name?varchar(20), ????age?int )
刪除主鍵
--?刪除主鍵 ALTER?TABLE?表名?DROP?PRIMARY?KEY; --?刪除hero1表的主鍵 ALTER?TABLE?hero1?DROP?PRIMARY?KEY;
主鍵自增
--??AUTO_INCREMENT表示自動增長 --??創建表hero2,包含字段(id,name,age)將id作為主鍵并自動增長 CREATE?TABLE?hero2( ?id?int?PRIMARY?KEY?AUTO_INCREMENT, ????name?varchar(20), ????age?int )
擴展:默認的AUTO_INCREMENT的起始值是1,下列語法可以修改起始值
AUTO_INCREMENT?表名?AUTO_INCREMENT?=?起始值;
DELETE和TRUNCATE的區別 ●DELETE刪除表中的數據,但不重置AUTO_ INCREMENT的值。 ●TRUNCATE摧毀表,重建表,AUTO_ _INCREMENT重置為1
唯一約束
--??唯一約束 字段名?字段類型?UNIQUE; --??創建表hero3,包含字段(id,name)將name設為唯一約束,不能出現相同的數據 CREATE?TABLE?hero3( ?id?int, ????name?varchar(20)?UNIQUE )
非空約束
--??非空約束 字段名?字段類型?NOT?NULL; --??創建表hero4,包含字段(id,name)將name設為非空約束,name不能為NULL CREATE?TABLE?hero4( ?id?int, ????name?varchar(20)?NOT?NULL )
默認值
--??默認值格式 字段名?字段類型?DEFAULT?默認值; --??創建表hero5,包含字段(id,name),name默認是英雄 CREATE?TABLE?hero5( ?id?int, ????name?varchar(20)?DEFAULT?'英雄' )
查看全部 -
powerdesigner??數據庫建模工具
查看全部 -
SQL? 結構化查詢語言
查看全部 -
// 登錄格式1 mysql -u用戶名 -p密碼
mysql -uroot -proot
// 登錄格式2 mysql -hip地址 -u用戶名 -p密碼
mysql -u127.0.0.1 -uroot -proot
// 登錄格式3 mysql --host=ip地址 --user=用戶名 --password=密碼
mysql --host=127.0.0.1 --user=root --password=root
// exit 退出數據庫
查看全部 -
sql語句:DDL語句,DML語句,DQL語句,DCL語句
DDL語句操作數據庫以及表的 create, drop, alter
DML語句對表數據進行insert(增加),delete(刪除),update(修改)
DQL語句對表數據進行select查詢
mysql數據庫約束:主鍵約束,唯一約束,非空約束
查看全部 -
DDL:數據定義語言,用來定義數據庫對象;數據庫、表、列等,關鍵字:create、drop、alter等
DML:數據操作語言,用來對數據庫中表的數據進行增刪改。關鍵字:insert、delete、update等
DQL:數據庫查詢語言,用來查詢數據庫中表的記錄,關鍵字:select,where等
DCL:數據控制語言,用來定義數據庫的訪問權限和安全級別,以及創建用戶。關鍵字:grant,revoke等
查看全部 -
唯一約束:在這張表中這個字段的值不能重復
字段名 字段類型 UNIQUE
查看全部 -
數據可的約束
主鍵約束 ? 用來唯一標識一條記錄(不能有空值)
創建: 字段名 類型名 PRIMARY key
主鍵自增
創建: 字段名 類型名 primary key AUTO_INCREMENT
擴展
默認的AUTO_INCREMENT的開始值是1,如果希望修改起始值,可用
ALTER TABLE 表名 AUTO_INCREMENT = 起始值(用delete刪除記錄后重新輸入是在起始值基礎上增加的)
查看全部 -
條件查詢值模糊查詢
SELECT * FROM 表名 WHERE 字段名 LIKE '通配字符串';
%:表示0個或多個任意字符
_:表示一個字符 ? ? ?? 如搜: %筆記本%
查看全部 -
DQL語句
簡單查詢
SELECT *FROM student;
查詢指定列
SELECT l列名1,列名2,。。。FROM 表名;
別名查詢(查詢時賦別名,不會改變原表)
SELECT 字段1 AS 別名,字段2 as 別名,... FROM 表名; ?? 別名為字符串時不用加單引號,as 可省略。
清除重復值
SELECT DISITNCT 字段名 FROM 表名;
SELECT DISITNCT 字段名1,字段名2 FROM 表名;
查詢結果參與運算
某列數據和固定值運算? SELECT 列名 + 固定值 FROM 表名;
某列數據和其他列數據參與運算 SELECT 列名1 + 列名2 FROM 表名;
注意:運算結果是查詢結果,不改變原表
查看全部 -
修改表數據
全部修改:
UPDATE 表名 set 列 = 修改值;
update student set sex = '女';
條件修改
update student set sex = '男' where id = 2;
多字段條件修改
update student set sex = '女' , address = '上海' where id = 3;
刪除表
全部刪除(表還在,但為空)
DELECT FROM 表名;
條件刪除(刪除行)
DELETE FROM student where id = 3;
TRUNCATE TABLE 表名; ? ? 先摧毀該表,并創建一個結構名、結構一樣的新表,但無數據。而delete則是一條一條的刪除數據
查看全部 -
蠕蟲復制:
創建student1表,結構與student相同
CREATE TABLE student1 LIKE student;
將student表中的數據復制到student1中(復制全部字段)
INSERT INTO student1 SELECT * FROM student;
SELECT * FROM student1;
復制部分字段
如只想復制student表中的name, address字段到student2中:
CREATE TABLE student2 LIKE student1;
INSERT INTO student2(name, address)SELECT nmae, address FROM student1;
SELECT * FROM student2;
查看全部 -
DML語句:數據操作語言
插入insert
(添加所有值)
第一種:INSERT INTO 表名 (字段名1, 字段名2, 字段名3)VALUES (值1, 值2, 值3);
第二種:INSERT INTO 表名 VALUES (值1, 值2, 值3);
(添加部分值)
INSERT INTO 表名 (字段名1, 字段名2, ...)VALUES (值1, 值2,...);
沒有添加數據的字段會使用NULL
查看全部 -
DDL操作表:前提先使用某個數據庫
創建表: CREATE TABLE 表名 (字段1 類型1, 字段2 類型2, ...);
字段須為英文
CREATE TABLE student (id int, name varchar(10), birthday data, sex char(1));
char(M)\varcgar(M), M表示字符或字符串的規格大小
SHOW TABLES; ? 查看表
DESC 表名; ?? 查看表結構
SHOW CREATE TABLE 表名; ?? 查看創建表的SQL語句
CREATE TABLE 新表明 LIKE 舊表名; ?? 快速創建相同表結構的表
DROP TABLE 表名;? 刪除表
SHOW TABLES;
DROP TABLE IF EXISTS 表名; ? 判斷表是否存在并刪除表
SHOW TABLES;
修改表結構:(不常用)
ALTER TABLE 表名 ADD 列名 類型; ? ? ? ? ? ? ? ? ? ? 添加列
具體操作:為學生表添加一個新的字段remark,類型為varchar(20)
ALTER TABLE student ADD remark VARCHAR(20);
DESC student;
ALTER TABLE 表名 MODIFY 列名 新的類型; ? ? ? ? ? ? 修改列類型
ALTER TABLE student MODIFY remark varchar(100);
DESC student;
ALTER TABLE 表名 CHANGE 舊列名 新列名 類型; ? ? ? ? ? ? 修改列名
ALTER TABLE studentCHANGE remark intro varchar(30);
DESC student;
ALTER TABLE 表名 DROP 列名; ? ? ? ? ? ?? 刪除列
ALTER TABLE student DROP intro;
DESC student;
RENAME TABLE 表名 TO 新表名; ? ? ? ? ? ? ? ? 修改表名
RENAME TABLE student TO student2;
SHOW TABLES;
ALTER TABLE 表名 CHARACTER SET 字符集; ? ? ? ? ? ?? 修改字符集
具體操作:將student2表的編碼修改為gbk
SHOW CREATE TABLE student2;
ALTER TABLE student2 character set gbk;
SHOW CREATE TABLE student2;
查看全部 -
mysql -uroot -proot
創建:CREATE DATABASE db1;
查看:SHOW DATABASES;
CREATE DATABASE IF NAT EXISTS db2;(用于數據庫的備份與還原)
CREATE DATABASE IF NAT EXISTS db2;
SHOW DATABASE;
CREATE DATABASE db3 CHARACTER SET gbk;
SHOW DATABASES;
查看數據庫創建時候的字符(字符集)語句(定義信息):
SHOW CREATE DATABASE db3;
SHOW CREATE DATABASE db2;
修改數據庫字符集格式
ALTER DATABASE db2 DEFAULT CHARACTER SET gbk;
DROP DATABASE db3;(刪除數據庫)
查看正在使用的數據庫:
SELECT DATABASE();
使用/切換數據庫:
USE db1;
SELECT DATABASE();
USE db2;
SELECT DATABASE();
?
查看全部
舉報