學習總結
mysql安裝好以後,首先需要建立資料庫,這是使用mysql各種功能的前提。
1、下面將詳細介紹資料庫的基本操作。
啟動服務:net start mysql
停止服務:net stop mysql
登入資料庫:mysql -h localhost -u root -p
建立資料庫:create database dataase_name(資料庫名);
使用資料庫:use database_name;
檢視當前所有存在的資料庫:show databases;
刪除資料庫;drop database database_name;
檢視資料庫儲存引擎: show engines;
檢視預設的儲存引擎:show variables like 'storage_engine'
資料庫儲存引擎有:innodb myisam memory
2、下面將詳細介紹資料表的基本操作
2.1建立資料表:
在建立資料表之前,應該使用 " use database_name"
建立資料表:create table
欄位名1,資料型別 [列級別約束條件] [預設值],
欄位名2,資料型別 [列級別約束條件] [預設值],
..............
檢視建立的資料表:show tables;
2.1.1使用主鍵約束:主鍵列資料唯一,並且不允許為空主鍵能夠唯一標識表中的一條記錄,可以結合外來鍵來定義不同資料表之間的關係,並且可以加快資料庫查詢的速度。
一、單字段主鍵
1、 在定義列的同時指定主鍵: 欄位名 資料型別 primary key ; eg: id int(11) primary key;
2、在定義完所有列之後指定主鍵:[constraint《約束名》] primary key [欄位名] primary key (id);
二、多欄位聯合主鍵
primary key (欄位1,欄位2,...欄位n); primary key (id ,name);
2.1.2 使用外來鍵約束:外來鍵用來在兩個表的資料之間建立連線,它可以日一列或多列。作用:保持資料的一致性、完整性。
外來鍵:首先它是表中的乙個字段,它可以不是本表的的主鍵,但對應另外乙個表的主鍵。外來鍵的作用保證資料引用的完整性,定義外來鍵後,不允許刪除在另乙個表中具有關聯關係的行。
外來鍵建立規則如下:
[constraint 《外鍵名》] foreign key 欄位名1 (欄位名1,欄位名2.........)
references 《主表名》 主鍵列1 [主鍵1,主鍵2,.........]
例如:constraint fk_emp_dept1 foreign key(deptid) feferences to_dept1(id);
2.1.3使用非空約束:設定欄位的值不能為空。對於使用了非空約束的字段,如果使用者在新增資料時沒有指定值,資料庫系統會報錯。
非空約束的語法規則如下:
欄位名 資料型別 not null;
2.1.4使用唯一性約束:要求該列唯一,允許為空,但只能出現乙個空值。唯一約束可以確保一列或者多列不出現重複值。
唯一性約束的語法規則如下:
(1) 在定義完列之後直接指定唯一約束, 欄位名 資料型別 unique;
(2)在定義完所有列之後指定唯一約束, [constraint 《約束名》] unique(《欄位名》)
unique與primary key區別: 乙個表中可以有多個字段宣告為 unique,但只能有乙個primary key宣告;宣告為primary key的列不允許有空值,但是宣告為unique的字段允許空值(null)的存在.
2.1.5使用預設約束:用來指定某列的預設值
預設值的語法規則如下:
欄位名 資料型別 default 預設值 ;
2.1.6設定表的屬性值自動增加:乙個表只能有乙個字段使用auto_increment,且該字段必須為主鍵的一部分.
設定表的屬性值自動增加的語法規則如下;
欄位名 資料型別 auto_increment
例如 : id int(10) primary key auto_increment,
2.1.7檢視資料表結構:可以檢視表結構的定義,以確認表的定義是否正確。
(1) describe 表名; 或者簡寫: desc 表名;
(2) show create table 《表名\g>
使用show create table 語句,不僅可以檢視表建立時候的詳細語句,而且還可以檢視儲存引擎和字元編碼。
如果不加「\g」引數,顯示的結果可能非常混亂,加上引數「\g」之後,可使顯示結果更加直觀,易於檢視。
2.2修改資料表
修改表指的是修改資料庫中已經存在的資料表的結構。使用alter table 語句修改表。
2.2.1修改表名:alter table 《舊表名》 rename [to] 《新錶名》;
2.2.2修改欄位的資料型別:alter table 《表名》 modify 《欄位名》 《資料型別》;
注意:在資料庫表中有資料的時候,不要輕易修改資料型別
2.2.3修改欄位名:alter table 《舊表名》 change 《舊欄位名》 《新欄位名》 《新資料型別》;
2.2.4新增字段:alter table 《表名》 add 《新欄位名》 《資料型別》
[約束條件] [first | after 已存在欄位名];
1、新增無完整性約束條件的字段:alter tables tb_dept1 add managerid int(11);
2、新增有完整性約束條件的字段:alter tables tb_dept1 add manageid int(11) not null;
3、在表的第一列新增乙個字段:alter table tb_dept1 add manageid int(11)first;
4、在表的指定列之後新增乙個字段:alter table tb_dept1 add mannageid int(11)after name;
2.2.5刪除字段:alter table 《表名》 drop 《欄位名》;
2.2.6修改欄位的排列位置:alter table 《表名》 modify 《欄位1> 《資料型別》 first | after 《欄位2>;
1、修改欄位為表的第乙個字段:alter table tb_dept1 modify column1 varchar(12) first;
2、修改欄位到表的指定列之後:alter table tb_dept1 modify column1 varchar(12) after location;
2.2.7更改表的儲存引擎:alter table 《表名》 engine=《更改後的儲存引擎名》;
2.2.8刪除表的外來鍵約束:對於資料庫中定義的外來鍵,如果不再需要,可以將其刪除。外來鍵一旦刪除,就會解除主表和從表間的關聯關係,mysql中刪除外來鍵的語法格式如下:
alter table 《表名》 drop foreign key 《外來鍵約束名》;
外來鍵約束名:指在定義表時constraint 關鍵字後面的引數;
2.2.9刪除資料表:將資料庫中已經存在的表從資料中刪除。注意,在刪除表的同時,表的定義和表中所有的資料均會被刪除。
1、刪除沒有被關聯的表:使用drop table 可以一次刪除乙個或多個沒有被其他關聯的資料表。
drop table [if exists] 表1,表2,......;
引數「if exists」用於在刪除前判斷刪除的表是否存在,加上該引數後,再刪除表的時候,如果表不存在,sql 語句可以順利執行,但是會發出警告(warning)。
2、刪除被其他表關聯的主表:資料表之間存在外來鍵關聯的情況下,如果直接刪除父表,結果會顯示失敗。原因日直接刪除,將破壞的參照完整性。如果必須要刪除,可以先刪除與它關聯的子表,再刪除父表,只是這樣同時刪除了兩個表中的資料。但有的情況下可能保留子表,這時如要單獨刪除父表,只需將關聯的表的外來鍵約束條件取消,然後就可以刪除父表。
解除關聯子表 tb_dept2的外來鍵約束:alter table tb_emp drop foreign key fk_emp_dept ;
語句成功執行後,將取消表 tb_emp和表 tb_dept2之間的關聯關係,此時,可以輸入刪除語句,將原來父表tb_dept2刪除,
drop table tb_dept2;
注意:1、表刪除操作將把表的定義和表中的資料一起刪除,並且mysql在執行刪除操作時,不會有任何的確認資訊提示,因此執行刪除操作時,應當慎重。
2、並不是每個表都可以任意選擇儲存引擎:外來鍵約束是用來保證資料的參照完整性,如果表之間需要關聯外來鍵,卻指定了不同的儲存引擎,這些表之間是不能建立外來鍵約束的。所以說,儲存引擎的選擇也不完全是隨意的。
mysql(一) mysql資料庫以及建立表
顯示所有資料庫 show databases 建立資料庫 create database 資料庫名 刪除資料庫 drop database 資料庫名 檢視表結構 describe desc 表名 檢視表詳細結構 show create table 表名 修改表 1.修改表名 alter table ...
mysql建立資料庫和表!
create database searchdb use searchdb create table product id int auto increment,category varchar 128 name varchar 128 type varchar 128 content varcha...
mysql 建立資料庫和表
mysql 建立資料庫和表 root localhost service mysqld start 啟動mysql伺服器 root localhost mysqladmin u root password 642531 為mysql使用者root設定登入密碼 root localhost mysql...