MySQL数据库操作(一)——DDL、DML、DCL

个人博客:haichenyi.com。感谢关注

MySQL:

  启动:net start mysql

  停止:net stop mysql

  登录:mysql -u root -p 例如:mysql -uroot -p123 -hlocalhost

  退出:exit或者quit

DDL操作:

  加上if exists或者if not exists:都是如果存在,或者如果不存在,就不做相关操作

  查询当前有哪些数据库:show databases;

  创建数据库:CREATE DATABASE if not exists 数据库的名字 CHARSET=utf8;例如:CREATE DATABASE if not exists employee CHARSET=utf8;创建一个编码为utf-8的employee数据库。不存在就创建,存在就不管。

  删除数据库:DRAP DATABASE if exists 数据库名称;例如:DRAP DATABASE if exists employee;删除employee数据库,如果存在就删除,不存在就不管。

  修改数据库编码方式:ALTER DATABASE 数据库名称 CHARACTER SET utf8;

  切换数据库:use 数据库名称;

  创建表:CREATE TABLE if not exists 表名(列名 列类型,...,列名 列类型);

CREATE TABLE if noe exists t_stu(

        stu_num char(11),

        stu_name varchar(50),

        stu_age int,

        stu_sex varchar(10)

        );

  显示当前数据库包含的表:show tables;

  显示当前表结构:desc 表名称;

  删除表:drop table 表名称;

  新增列:alter table 表名 add(列名 列类型,...,列名 列类型);

alter table t_stu add(

        stu_address varchar(100),

        stu_phone char(11)

        );

  修改列类型:alter table 表名 modify 列名 列新类型;

alter table t_stu modify stu_address varchar(50);

  修改列名:alter table 表名 change 原始列名 新列名 列类型;

alter table t_stu change stu_address stu_addr varchar(100);

  删除列:alter table 表名 drop 列名;

alter table t_stu drop stu_address;

  修改表名:alter table 原始表名 rename to 新表名;

DML操作:

为了好操作,先用一下查询的命令,查询表的所有记录: select * from 表名;

  插入一行记录:INSERT INTO 表名 (列名,...,列名)VALUES(列值,...,列值);

INSERT INTO t_stu(

        stu_num,stu_name,stu_age,stu_sex,stu_phone
        
        )VALUES(
        
        'test_num_001','张三',18,'man','13888888888'
        
        );

  修改所有数据:update 表名 set 列名=列值,...,列名=列值;

update t_stu set name='wangwu';

  修改数据(单个条件):update 表名 set 列名=列值,...,列名=列值 where 列名=列值;

update t_stu set stu_name='zhangsan' where stu_num='testNum_00001';

  修改数据(多个条件):update 表名 set 列名=列值,...,列名=列值 where 列名=列值 or 列名=列值;

//or,或者
update t_stu set stu_age=28 where stu_num='testNum_0001' or stu_name='zhangliu';
//and,并且
update t_stu set stu_age=28 where stu_age>=25 and stu_age<=30;
//between...and...在什么区间内
update t_stu set stu_age=28 where stu_age between 25 and 30;
//in(...)
update t_stu set stu_age=28 where stu_name  in ('zhangsan','lisi');
//is null,是null。不能是stu_name=null
update t_stu set stu_age=28 where stu_name  is null;

  删除记录:DELETE FROM 表名 where ...;

//这里where后面的条件跟前面的update是一样的写法
DELETE FROM t_stu where stu_age = 28;

DCL操作:

  创建用户:

//只要是写用户名的位置都可以设置固定ip,或者不固定ip
CREATE USER 用户名@IP地址 IDENTIFIED BY '密码';//固定ip登录
CREATE USER 用户名@'%' IDENTIFIED BY '密码';//任意ip登录
CREATE USER zhangSan@'%' IDENTIFIED BY '123';

  给用户授权:

GRANT 权限1,权限2,...,权限n ON 数据库名称.* TO 用户名@ip地址;
GRANT 权限1,权限2,...,权限n ON 数据库名称.* TO 用户名@'%';

GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON school.* TO zhangSan@'%';
//给所有权限
GRANT ALL ON school.* TO zhangSan@'%';

  撤销权限:

REVOKE  权限1,权限2,...,权限n ON 数据库名称.* FROM 用户名@'%';

  查看用户权限:

SHOW GRANTS FOR 用户名@ip地址;

  删除用户:

DROP USER 用户名@ip地址;

你可能感兴趣的:(数据库相关)