1. 給數據庫加用戶
use mysql;
#新建的用戶名為guest,密碼為guest123,可以進行select,insert,update方法
INSERT INTO user(host, user, password, select_priv, update_priv)
VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y' );
#需要使用PASSWORD函數對密碼加密
FLUSH PRIVILEGES; #重新載入授權表
權限種類
Select_priv
Insert_priv
Update_priv
Delete_priv
Create_priv
Drop_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Grant_priv
References_priv
Index_priv
Alter_priv
2. 基本的命令
use 數據庫名;
show databases;
show tables;
show columns from 數據表; #顯示表屬性
show index from 數據表; #顯示數據表的詳細索引信息,包括主鍵
mysql -D exam_db -u root -p < createtable.sql#運行.sql腳本
3. 數據庫操作
create database class charset set utf8;#創建數據庫
drop database class; #刪除數據庫
#創建數據表
create table student (
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
author VARCHAR(40) NOT NULL,
submission_data DATE,
PRIMARY KEY(id)
);
#刪除數據表
DROP TABLE student;
#插入數據
insert into student (title, author, submission) values("nihao", "xuji", "2016-10-14")
#查詢數據
select * from student where id = 1;
#除非用like,否則where中的字符串是不區分大小寫的
select * from student where BINARY author="xuji"; #這句區分大小寫
更新表中的數據
update 表名稱 set 列名稱=新值 where 條件;
刪除表中的數據
delete from 表名稱 where 刪除條件
3. 表結構的修改
#增加列
alter table 表名 add 列名 數據類型 [after 插入位置];
#修改列
alter table 表名 change 列名稱 列新名稱 新數據類型;
#刪除列
alter table 表名 drop 列名稱;
#重命名表
alter table 表名 rename 新表名
#刪除整張表
drop table 表名
4. 修改root用戶密碼
mysqladmin -u root -p password 新密碼
5. 事務
1. 原子性 Atomicity
2. 穩定性 Consistency
3. 隔離性 Isolation
4. 可靠性 Durability
開啟事務
START TRANSACTION或者BEGIN
提交事務
COMMIT
放棄事務
ROLLBACK
折返點
SAVEPOINT goto1
ROLLBACK TO SAVEPOINT goto1
6. 索引
#如果是CHAR、VARCHAR類型,length可以小于字段實際長度
CREATE INDEX index_name ON table_name(column_name(length));
ALTER TABLE table_name ADD INDEX index_name ON column_name(length)
#創建唯一索引
CREATE UNIQUE INDEX index_name ON table_name(column_name(length))
ALTER TABLE table_name ADD INDEX index_name ON column_name(length)
判斷數據是否是NULL
where 'time' != 'NULL'