做網(wǎng)站看網(wǎng)頁(yè)效果手機(jī)網(wǎng)站排名優(yōu)化
數(shù)據(jù)完整性:
- 實(shí)體完整性:每一行必須是唯一的實(shí)體
- 域完整性:檢查每一列是否有效
- 引用完整性:確保所有表中數(shù)據(jù)的一致性,不允許引用不存在的值
- 用戶定義的完整性:制定特定的業(yè)務(wù)規(guī)則
主鍵:
- 用于唯一標(biāo)識(shí)表中的行數(shù)據(jù)
- 有一個(gè)或多個(gè)字段組成
- 具有唯一性
- 不允許取空值(NULL)
- 一個(gè)表里只能有一個(gè)主鍵
數(shù)據(jù)類型:精準(zhǔn)數(shù)字,近似數(shù)字,字符串,二進(jìn)制字符串,日期和時(shí)間等等
SQL結(jié)構(gòu)化查詢語(yǔ)句
DDL:數(shù)據(jù)定義語(yǔ)言:create(創(chuàng)建) , drop(刪除) , alter(修改)
DML:數(shù)據(jù)操作語(yǔ)言:insert(添加),update(更新), delete(刪除)
DCL:數(shù)據(jù)控制語(yǔ)言:select(選擇), show語(yǔ)句 , describe
DQL:數(shù)據(jù)查詢語(yǔ)言:grant(授權(quán)) , revoke(取消授權(quán)) , commit(提交), rollback(退回)
1:查看數(shù)據(jù)庫(kù)結(jié)構(gòu)
[root@localhost ~]# mysql -u root -ppwd123
mysql> show databases;
mysql> use mysql
mysql> show tables;
mysql> describe user;
mysql> select * from user\G;
備注:
- information_schema數(shù)據(jù)庫(kù):保存著關(guān)于MySQL服務(wù)器所維護(hù)的所有其他數(shù)據(jù)庫(kù)的信息。如數(shù)據(jù)庫(kù)名,數(shù)據(jù)庫(kù)的表,表欄的數(shù)據(jù)類型與訪問(wèn)權(quán) 限等
- performance_schema:用于監(jiān)控MySQL server在一個(gè)較低級(jí)別的運(yùn)行過(guò)程中的資源消耗、資源等待等情況
mysql:是 MySQL 服務(wù)正常運(yùn)行所需的數(shù)據(jù)庫(kù),其中包含了用戶認(rèn)證相關(guān)的表
2.創(chuàng)建及刪除數(shù)據(jù)庫(kù)和表
(1)創(chuàng)建新庫(kù)
mysql> create database auth;
(2)創(chuàng)建新表
mysql> use auth;
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));
備注:”DEFAULT“密碼默認(rèn)為空
(3)刪除一個(gè)數(shù)據(jù)表
mysql>DROP TABLE auth.users;
(4)刪除一個(gè)數(shù)據(jù)庫(kù)
mysql>DROP DATABASE auth;
3:管理表中的數(shù)據(jù)記錄
(1)插入數(shù)據(jù)記錄
mysql>use auth;
mysql>INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD ('123456'));
mysql>INSERT INTO users VALUES('lisi', PASSWORD('654321'));
(2)查詢數(shù)據(jù)記錄
mysql>select * from auth.users;
mysql>SELECT user_name,user_passwd FROM auth.users WHERE user_name='zhangsan';
(3)修改數(shù)據(jù)記錄
mysql>UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name= 'lisi';
mysql>SELECT * FROM auth.users;
mysql>UPDATE mysql.user SET authentication_string=PASSWORD('123457') WHERE user='root';
mysql>FLUSH PRIVILEGES; /
[root@www ~]# mysqladmin -u root -p'123457' password '123456'
(4)刪除數(shù)據(jù)記錄
mysql>DELETE FROM auth.users WHERE user_name='lisi';
mysql>SELECT * FROM auth.users;
4:數(shù)據(jù)庫(kù)表高級(jí)操作
(1)克隆表
mysql>create table user01?like auth.users;?????//通過(guò) LIKE 方法,復(fù)制 users?表生成 tmp 表,注意,此表為空
mysql>insert into?user01?select * from auth.users; ????//通過(guò) player 表生成 tmp 表內(nèi)數(shù)據(jù)記錄
(2)刪除表
mysql> delete from user01?where user_name='zhangsan';
mysql>delete from user01;
mysql>insert into user01 select * from auth.users;
mysql>truncate table user01;
mysql>select count(*) from user01;
備注:
編號(hào) 姓名 性別
1
2
3
4
5
標(biāo)識(shí)列
truncate和delete的區(qū)別:
truncate刪除表中的內(nèi)容,不刪除表結(jié)構(gòu),釋放空間;
delete刪除表中的內(nèi)容,不刪除表結(jié)構(gòu),但不釋放空間
truncate刪除數(shù)據(jù)后重新寫數(shù)據(jù)會(huì)從1開始,
delete刪除數(shù)據(jù)后只會(huì)從刪除前的最后一行續(xù)寫;內(nèi)存空間上,truncate省空間
delete屬于DML語(yǔ)句,而truncate和drop都屬于DDL語(yǔ)句
delete可以在后續(xù)加上where進(jìn)行針對(duì)行的刪除
truncate和drop后面只能加上表名,直接刪除表,無(wú)法where
drop table 表名??刪除表,內(nèi)容連帶結(jié)構(gòu)一起刪除;
(2)臨時(shí)表
mysql>select * from mytmp; //查看 mytmp 表是否存在
mysql>CREATE TEMPORARY TABLE `mytmp` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
?`level` int(10) NOT NULL,
PRIMARY KEY (id)
?) ENGINE=InnoDB DEFAULT CHARSET=utf8; //創(chuàng)建臨時(shí)表
mysql> insert into mytmp(name,level) values('aa',10); //插入數(shù)據(jù)
Query OK, 1 row affected (0.01 sec)
mysql>select * from mytmp;
mysql>quit //退出當(dāng)前連接
Bye
mysql>select * from mytmp;?????//重新連接 MySQL 之后查看臨時(shí)表狀態(tài)
flush privileges;更新權(quán)限的相關(guān)信息
授權(quán)(一組權(quán)限的集合:角色)
授權(quán)授的是什么,是權(quán)限嗎
1:授予權(quán)限
mysql>grant select on auth.* to 'zhangsan' @'localhost' identified by '123456'; 本機(jī)登錄
mysql>grant select on auth.* to 'zhangsan' @'192.168.10.%' identified by '123456'; 特定網(wǎng)段
mysql>grant select on auth.* to 'zhangsan' @'192.168.10.101' identified by '123456'; 指定ip
2:查看權(quán)限
mysql> SHOW GRANTS FOR 'zhangsan'@'localhost';
3:驗(yàn)證權(quán)限
[root@localhost ~]# mysql -u zhangsan -p123456