操作數據庫
1.創建庫
語法:create database 數據庫名;
例如:create database school;
如果需要制定編碼的default character set utf8 collate utf8_general_ci;
數據庫添加編碼:
ALTER DATABASE 庫名 CHARACTER SET 編碼格式;
2.刪除庫
語法:drop database 數據庫名;
列入:drop database students;
3.使用庫
語法:use 數據庫名;
例如:use school;
用戶的創建與授權
1.創建用戶
CREATE USER ‘username’@'host' IDENTIFIED BY 'password';
host如果是%代表可以遠程登錄的用戶
CREATE USER 'jame'@'%' IDENTIFIED BY '123456' (創建一個遠程登錄的用戶jame)
2.授權用戶
授權:
GRANT 權限1,權限2,...權限n ON 數據庫名稱.表名稱 TO 用戶名@用戶地址 IDENTIFIED BY '連接口令';
移除權限:
REVOKE 權限1,權限2...權限n ON databasename.tablename FROM 'username'@'host';
十四個權限:select,insert,update,delete,create,drop,index,alter,grant,references,reload,shudown,process,file
給所有權限就是使用 all privileges
3.刪除用戶
DROP USER 用戶名;
在不指定主機的情況下,默認就是% 例: DROP USER jame;
刪除本地用戶 例:DROP USER jame@localhost;
操作數據表
1.創建表
先進入庫 USE DATABASE 庫名
創建表 CREATE TABLE 表名(字段名1 數據類型 [NOT NULL],字段名2 數據類型 [NOT NULL]);
查看錶結構:
desc 表名;
2.修改表
修改表名 ALTER TABLE 原表名 RENAME TO 新表名; (表的結構與數據都不會受影響)
修改列 ALTER TABLE 表名 CHANGE 原列名 新列名 新 列名的數據類型; (修改的數據類型不能跟該列已有數據起衝突)
修改字段數據類型:alter table 表名 modify 列 數據類型;
增加列 ALTER TABLE 表名 ADD 新列名(字段名) 數據類型;
刪除列 ALTER TABLE 表名 DROP 列名(字段名);
3.刪除表
drop table 表名;
4.數據約束:
非空:
添加:alter table 表名 modify 列 數據類型 not null;
刪除:alter table 表名 modify 列 數據類型 null;
默認值:
添加:alter table 表名 alter 列 set default '值';
刪除:alter table 表名 alter 列 drop default;
唯一約束:
添加:alter table 表名 add unique 約束名(字段);
刪除:alter table 表名 drop key 約束名;
主鍵:
添加:alter table 表名 add primary key(字段);
刪除:alter table 表名 drop primary key;
自增長:
添加:alter table 表名 modify 列名 int auto_increment;
刪除:alter table 表名 modify 列名 int;
外鍵:
添加:
alter table 外鍵表 add constraint 約束名 foreign key(外鍵列)
references 主鍵表(主鍵列)
on delete set null
on update set null
刪除:
第一步:刪除外鍵
alter table 外鍵表 drop foreign key 約束名;
第二部:刪除索引名
alter table 外鍵表 drop index 索引名;
TIMESTAMP的變體
1.在創建新紀錄和修改現有記錄的時候都會對這個列的時間進行刷新
ALTER TABLE students
ADD update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
2.在創建新紀錄的時候把這個字段設置爲當前時間,但是以後的更新不會執行
ALTER TABLE students
ADD update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE;
3.創建新紀錄的時候不給值,以後修改的時候自動刷新
ALTER TABLE students
ADD update_time TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
注意事項:
1.字段:每個表都可以分更小的項,這些項成爲字段(列)
2.記錄(數據記錄,一行數據):表裏面的行
3.列表裏的垂直項。包含表裏特定字段的所有信息