重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
1、創建表格時添加: create table table1(id int auto_increment primary key,…)
成都創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站建設、網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的冀州網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
2、創建表格后添加: alter table table1 add id int auto_increment primary key 自增字段,一定要設置為primary key.
附:mysql 中的alter table mysql alter table employee change depno depno int(5) not null;
加索引 mysql alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子: mysql alter table employee add index emp_name (name);
加主關鍵字的索引 mysql alter table 表名 add primary key (字段名);
例子: mysql alter table employee add primary key(id);
加唯一限制條件的索引 mysql alter table 表名 add unique 索引名 (字段名);
例子: mysql alter table employee add unique emp_name2(cardnumber);
查看某個表的索引 mysql show index from 表名; 例子: mysql show index from employee;
刪除某個索引 mysql alter table 表名 drop index 索引名; 例子: mysqlalter table employee drop index emp_name;
修改表:增加字段:mysql ALTER TABLE table_name ADD field_name field_type;
查看表:mysql SELECT * FROM table_name;
修改原字段名稱及類型:mysql ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
刪除字段:ALTER TABLE table_name DROP field_name;
前面介紹了如何對表數查詢、更新、刪除,本小節介紹如何在查詢、更新、刪除操作加上 WHERE 條件約束,使這些語句的操作更加準確,滿足業務需求。WHERE 條件的操作符類型有如下:
以 teacher 表為例,查詢年齡大于 18 的教師信息:
執行結果如下圖:
再比如使用 LIKE 模糊查詢身份證號以 020X 結尾的教師信息:
執行結果如下圖:
[圖片上傳失敗...(image-f53914-1648379120315)]
以 teacher 表為例,查詢年齡大于 18 和 教師姓氏 王 的教師信息:
執行結果如下圖:
[圖片上傳失敗...(image-7dbeda-1648379120315)]
以 teacher 表為例,查詢年齡大于 25 或 教師姓氏 王 的教師信息:
執行結果如下圖:
以 teacher 表為例,將 age 在 20 和 30 之間的教師身份證設置為 無 :
為了演示方便,我們先給 teacher 表增加一個字段 email :
執行結果如下圖:
清空表數據:
然后往 teacher 表插入幾條測試數據:
然后查詢 email 為 NULL 的教師信息結果集:
執行結果如下圖:
本小節介紹了如果在查詢、更新語句后面加上 WHERE 條件約束,需要注意的是當使用 、 、這樣的操作符和空值比較的時候,NULL值與任何其它值的比較(即使是NULL)永遠不會為 TRUE ,例如要查詢 name 為 NULL 的結果集要寫成 name IS NULL ,而不能使用 name=NULL 。
4.4.7添加約束
語句格式:ALTER TABLE 表名ADD? CONSTRAINT? 約束名 約束類型(字段名)
上面語句格式中,“表名”指定要添加約束的是哪個表,“ADD CONSTRAINT”表示要在表中增加約束,其后的“約束名”是擬增加約束的名字,“約束類型”是擬增加約束的類型,其后括號里的“字段名”是指約束是在哪一個字段上建立起來的。
下面截圖中的“ALTER TABLE”語句在t_dept表中新增加了一個約束名為unidept的約束,它是在對字段deptno進行的唯一性約束。
試試
CREATE TABLE user
(
id INT not null AUTO_INCREMENT,
name varchar(100) not null,
password varchar(100) not null,
PRIMARY KEY (id),
UNIQUE KEY (name)
);
其實這個和你的mysql版本也有關系,語法會不一樣
你可以下載個圖形化界面mysqlbrowser,然后通過圖形化方式生成語句就知道了
選中你要改的表---打開后選中你要添加約束的列--右鍵--選增加約束---寫[1,0]就好了
個人覺得EMS的SQL MANAGER FOR MYSQL更好用些
這是一項新功能,用于指定在插入或更新到一行之前檢查值的條件。如果表的任何行的搜索條件的結果為 FALSE,則約束可能返回錯誤(但如果結果為 UNKNOWN 或 TRUE,則約束不會返回錯誤)。此功能開始在 MySQL 8.0.16 上運行,在以前的版本中,我們可以創建它,但它不起作用,這意味著支持語法,但不起作用。要牢記的使用規則:
AUTO_INCREMENT 自增列不允許使用
引用另一個表中的另一列不允許使用
存儲的函數和用戶定義的函數不允許使用
存儲過程和函數參數不允許使用
子查詢不允許使用
在外鍵中用于后續操作(ON UPDATE,ON DELETE)的列不允許使用
為下一條語句 INSERT,UPDATE,REPLACE,LOAD DATA 和 LOAD XML 評估此次監測。此外,還會為 INSERT IGNORE,UPDATE IGNORE,LOAD DATA…IGNORE 和 LOAD XML…IGNORE 評估此監測約束。對于這些語句,如果約束的評估結果為 FALSE,則會發生警告。插入或更新被跳過。
我們可以使用此功能在表中添加更多的邏輯,但是根據我以前作為程序員的經驗,我不建議在表中添加邏輯,因為除非您無法訪問應用程序代碼,否則很難找到或調試錯誤。