mysql-建表、添加字段、修改字段、添加索引SQL語句寫法


表的操作

1、建表

--如果USERS表存在則刪除

DROP TABLE IF EXISTS USERS; 
CREATE TABLE USERS(
id INT UNSIGNED NOT NULL AUTO_INCREMENT, # 主鍵 UNSIGNED 無符號 AUTO_INCREMENT 自增
name VARCHAR(30) NOT NULL COMMENT '用戶名',
sex ENUM('男','女') NOT NULL DEFAULT '男', # 使用枚舉類型, 在插入的時候可以數值來表示,從1開始。如1則代表男
age TINYINT UNSIGNED NOT NULL DEFAULT 1,
PRIMARY KEY (`Id`)
)DEFAULT CHARSET=UTF8 ENGINE=INNODB;

操作字段都是ALTER TABLE 表名 的格式

2、添加字段

ALTER TABLE USERS ADD alias varchar(20) COMMENT '別名';

3、修改字段

  3.1 不修改名稱 使用modify

ALTER TABLE USERS MODIFY name varchar(20) NOT NULL COMMENT '用戶名';

  3.2 修改名稱 使用change  格式 是 change 要修改的名稱 新名稱 ...

ALTER TABLE USERS CHANGE name username varchar(20) NOT NULL COMMENT '用戶名';

4、刪除字段

ALTER TABLE USERS DROP COLUMN alias;
-- 刪除多個字段
-- ALTER TABLE USERS DROP COLUMN alias,DROP COLUMN age;

 

庫的操作

1、建庫

CREATE DATABASE test CHARACTER SET utf8;

2、修改庫的默認編碼

ALTER DATABASE test CHARACTER SET utf8;

3、刪庫跑路

DROP DATABASE test;

  

 

索引(約束)的操作

1、添加主鍵

--刪除主鍵

ALTER TABLE 表名 DROP PRIMARY KEY;

 

ALTER TABLE USERS ADD PRIMARY KEY ( `id` )

2、添加唯一索引

ALTER TABLE USERS ADD UNiQUE ( `username` )

3、添加普通索引

ALTER TABLE `USERS` ADD INDEX index_name ( `age` )

4、添加全文索引

ALTER TABLE `表名` ADD FULLTEXT (
`列名`
)

5、添加多列索引 

ALTER TABLE `表名` ADD INDEX index_name ( `列名1`, `列名2`, `列名3` )

6、添加外鍵

一般很少外鍵約束,外鍵約束靠代碼邏輯實現

alter table 表名 add constraint fk_引用id foreign key(引用id) references 被引用表名 (被引用id)

 

alter table 表名 drop forign key fk_引用id

數據庫的管理命令

1、連接

mysql -u root -p123456
或
mysql -u root -p

輸入密碼

2、查看操作

-- 查看所有庫
show databases;

-- 查看所在庫的表
show tables;

-- 查看庫的創建語句
show create database test;

-- 查看表的創建語句
show create table test;

-- 查看表的索引
-- show index from table_name(表名)
show index from users;

-- 查看mysql版本
select version();

-- 查看當前用戶
select user();

3、創建用戶

-- 特別需要注意,在 MySQL 中,賬號由兩部分組成:
-- 1. user
-- 2. host
-- 即使 user 相同,只要 host 不同,也會被認為是不同賬號。
-- 這樣可以非常方便對來自不同 ip 地址的訪問進行精細的權限控制。
-- 默認情況下,創建的用戶 host 為 '%',這是一個匹配符,跟模糊查詢里的意思一樣,表示匹配所有
create user [用戶名] identified by '[密碼]';
create user vip identified by 'vippp';             -- 所有連接
create user vip@'127.0.0.1' identified by 'xxx';   -- 本地連接
create user vip@'192.168.%' identified by 'yyy';   -- 192.168 網段的連接

4、刪除用戶

drop user 用戶名;
或
delete from mysql.user where user='用戶名' and host='%'

5、修改密碼

set password from '用戶名' @host=password('新密碼');
或
update mysql.user set password=password('新密碼') where user='用戶名' and host='%';

--使用password() 進行加密

6、設置用戶權限

grant all on *.* to vip@'127.0.0.1';   --將所有數據庫上的所有權利都授予通過本機連接的VIP用戶;

grant all privileges on books.* to vip@'%'; --將數據庫books上的說有權利都授予所有連接的vip用戶;

grant select on books.users to vip@'%';  --將books數據庫上的users表的訪問權限開發給vip用戶;

grant all on *.* to vip@'%' with grant potions;  --with grant potionss的意思是可以給vip給予權限給別的用戶

flush privileges; --設置權限后要刷新權限

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM