1. 程式人生 > >我的學習之路_第十八章_SQL語句

我的學習之路_第十八章_SQL語句

之路 唯一約束 一個表 database pda eat 三種方式 rac 條件過濾


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語句