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'