Mysql操作数据库,数据库建库建表建用户学习笔记

操作数据库

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.列表里的垂直项。包含表里特定字段的所有信息

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章