我的學習之路_第十八章_SQL語句
SQL語句
啟動數據庫: net start mysql 關閉數據庫: net stop mysql
登錄數據庫 : cmd-->命令行-->mysql-->mysql -u賬號 -p密碼
【創建和刪除數據庫】
使用關鍵字 : create(創建) database(數據庫)
格式: create database 數據庫名;
create database 數據庫名 character set 字符集;
●--查看mysql中所有的數據庫
show database;
●--查看某個數據庫的定義的信息
show create database 數據庫名;
●--切換數據庫
use 數據庫名;
●--查看正在使用的數據庫
select database();
●--刪除數據庫
drop database 數據庫名;
【創建表的SQL語句】
創建數據庫表,使用關鍵字 create(創建) table(表)
[] : 數據庫中是可選的意思,可以有,可以沒有
格式:
create table 表名(
字段名 數據類型[長度] [約束],
字段名 數據類型[長度] [約束],
...
字段名 數據類型[長度] [約束](最後一個不能有逗號)
);
主鍵約束: primary key 字段不能為null,不能重復
●--查看當前數據庫中所有的表
show table;
●--查看表結構
desc 表名 ;
●--刪除表
drop table 表名 ;
【修改表結構格式】
關鍵字 : alter(修改) modify(更改) change(改變)
●--修改表添加列
alter table 表名 add 列名 類型[長度] [約束];
●--修改表修改列的類型長度及約束
alter table 表名 modify 列名 類型[長度] [約束];
註意:如果有數據,必須註意數據類型 varchar --> int 容易有錯誤數據
●--修改列名以及數據類型和約束
alter table 表名 change 原列名 新列名 類型[長度] [約束];
●--刪除列
alter table 表名 drop 列名;
註意:如果列中有數據,數據就會一起刪除了,需謹慎
●--修改表名
rename table 表名 to 新表名;
●--修改表的字符集
alter table 表名 character set 字符集;
註意:不建議執行,有可能會產生亂碼
【插入表數據】
使用關鍵字 : insert(插入) [into]
格式:
包含主鍵:insert into 表名(字段1,字段2...) values(值1,值2...);
主鍵自增,省略主鍵: insert into 表名(不包含主鍵) values (不包含主鍵);
註意事項:
1.字段和值一定要一一對應(個數,數據類型)
2.除了數值類型(int ,double)其他的數據類型都需要使用引號包裹起來
可以使用雙引號,也可以使用單引號,推薦使用單引號
●--包含主鍵
insert into 表名(字段1,字段2...) value(值1,值2...);
●--創建表,主鍵自增 auto_increment(主鍵自己添加,自己增長)
create table 表名(
字段 數據類型[長度] primary key auto_increment,
字段 數據類型[長度][約束],
...
);
●--主鍵自增,省略主鍵:
insert into 表名(不包含主鍵) values (不包含主鍵);
●--批量插入數據
格式:
包含主鍵: insert into 表名(字段1,字段2...) values (值1,值2...)
主鍵自增,省略主鍵: insert into 表名 (不包含主鍵) values (不包含主鍵),(值1,值2...)
●--省略字段名格式:必須給出全部字段的值(包含主鍵)
格式:
insert into 表名 values(全部字段的值);
insert into 表名 values(全部字段的值),(全部字段的值)...
●--記不住主鍵,可以使用null,sql會自動計算主鍵
insert into 表名 values(null,字段);
【更新表數據】
使用關鍵字: update(更新) set(設置)
格式:
不帶條件過濾,一次修改列中所有的數據(慎用)
update 表名 set 字段名=字段值,字段名=字段值...
帶條件過濾,使用關鍵字 where
update 表名 set 字段名=字段值.字段名=字段值...where 過濾的條件
【刪除表數據】
使用關鍵字 : delete(刪除) from(來自)
格式:
delete from 表名 [where 過濾條件]
delete from 表名 : 刪除標作用的所有數據,但是不會刪除主鍵自增
truncate table 表名 : 刪除表中的所有數據,會刪除主鍵自增,讓主鍵自增重置,從1開始
【主鍵約束】
使用關鍵字 : primary 可以
作用:
約束主鍵列不能為null
不能重復
每一個表必須有一個主鍵,且只能有一個主鍵
主鍵不能使用業務數據
●--添加主鍵的第一種方式,在列名之後直接添加(創建表的時候直接添加)
●--添加主鍵的第二種方式,使用constraint區域
[constraint 名稱] primary key (字段列表);
如果不給出主鍵的名字,可以省略關鍵字 constraint
●--添加主鍵的第三種方式,創建表之後,通過修改表結構,添加主鍵
alter table 表名 add [constraint 名稱] primary key (字段列表);
●--刪除主鍵
alter table 表名 drop primary key ;
●--聯合主鍵 : 使用2個以上的字段為主鍵
create table 表名(
字段 數據類型[長度],
字段 數據類型[長度],
...
primary key(字段, 字段)
);
【非空約束】
使用關鍵字 : not null
作用:強制約束某一列不能為null(不接受null值)
●--創建非空約束第一種格式,創建表時,在字段後面直接給出
字段 數據類型[長度] not null ;
●--創建非空約束第二種格式,修改表結構
alter table 表名 modify 列名 數據類型[長度] [約束];
●--刪除非空約束
alter table 表名 modify 列名 數據類型[長度];
【唯一約束】
使用關鍵子: unique
作用:添加了唯一約束的字段,不能重復
●--創建唯一約束的第一種格式,創建表時,在字段後直接給出
字段 數據類型[長度] unique ;
●--創建唯一約束的第二種格式,創建表時使用 [constraint 名稱] unique (字段列表)
create table 表名(
字段1 數據類型[長度],
字段2 數據類型[長度],
...
constraint unique(字段2)
);
●--創建唯一約束的第三種格式,創建表之後,修改表數據
alter table 表名 modify 列名 類型[長度] unique ;
●--刪除唯一約束
alter table 表名 drop index 名稱
定義約束的時候,如果沒有創建名稱,則名稱為字符串(字段),如果創建了名稱,就寫創建時的名稱
【默認約束】
給字段添加一個默認值,如果字段沒有插入值,則使用默認值
使用關鍵字: default 值
●--創建默認約束方式一,創建表,列數據類型後面 default ‘默認值‘
●--創建默認約束方式二,修改表結構
alter table 表名 modify 列名 數據類型[長度] default ‘默認值‘ ;
●--刪除默認約束
alter table 表名 modify 列名 數據類型[長度] ;
我的學習之路_第十八章_SQL語句