mysql 的sql 语句

吃可爱长大的小学妹 提交于 2020-03-05 20:57:56

(一)mysql客户端命令

管理:

\h help :   查看帮助
\G:格式化查询
\s status:查看数据库的状态信息
\ source:导入sql文件
\u use:切换数据库
\! system:在数据库中使用系统命令

(二)mysqladmin客户端管理

#查看MySQL进程是否存活 
[root@db01 ~]# mysqladmin ping mysqld is alive 
#查看mysql信息 
[root@db01 ~]# mysqladmin status 
#关闭mysql进程 
[root@db01 ~]# mysqladmin shutdown 
#查看MySQL当前参数
[root@db01 ~]# mysqladmin variables 
#库外创建数据库
[root@db01 ~]# mysqladmin create aaa 
#库外删除数据库 
[root@db01 ~]# mysqladmin drop aaa 
#刷新binlog日志
[root@db01 ~]# mysqladmin flush-log 
#修改密码 
[root@db01 ~]# mysqladmin password '123'

(三)sql语句

1.DDL 数据定义语言

开发规范:库名,表名 都要小写 ,要不然会误删除数据的

1.库

create(创建)

查看创建的命令

mysql> help create user;
语法:
Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ...
#为了避免库已存在 报错
mysql> create database if not exists zhp;
Query OK, 1 row affected, 1 warning (0.00 sec)
#规范创建数据库
mysql> create database if not exists zhp default character set utf8 default collate utf8_general_ci;

drop(删除)

mysql> drop database bb;

alter(修改)

修改字符集

mysql> alter database zhp charset gbk;
Query OK, 1 row affected (0.00 sec)
查看
mysql> show create database zhp;  
+----------+-------------------------------------------------------------+
| Database | Create Database                                             |
+----------+-------------------------------------------------------------+
| zhp      | CREATE DATABASE `zhp` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+-------------------------------------------------------------+
1 row in set (0.00 sec)

修改校验规则

mysql> alter database zhp collate utf8_bin;

1572867737952

2.表

创建表create

查看创建表的语句帮助

mysql> create table tlbb(
    -> aid int primary key auto_increment comment '学号',
    -> sname varchar(10) not null comment'玩家名字',
    -> sage tinyint unsigned comment '玩家等级',
    -> sgender enum('m','f')not null default 'm' comment '玩家性别', 
    -> cometime datetime not null default NOW()comment '时间');
Query OK, 0 rows affected (0.04 sec)

drop(删除表)

mysql> drop table tlbb;

alter(修改表)

修改表名

mysql> alter table tlbb rename student;

增加字段

mysql> alter table stu add gsb varchar(10);

将字段插入到最前面

mysql> alter table stu add youfeng int first;

查看

mysql> desc student2;

(四)数据类型

int:整数 -2^31-2^31-1
varchar:字符类型(变长)
char:字符类型(定长)
tinyint:最小整数-128—-128
enum:枚举类型   
datetime:时间类型 年月日时分秒

约束

not null:非空
primary key:主键(唯一,且非空)
unique key:唯一键(可与为空)
auto_increment:自增
unsigned:无符号,和数字结合,就是非负数
default:默认值
commennt:注释

(五)实例

student 表

create table student2( sid int not null primary key auto_increment comment '学号', sname varchar(10) not null comment '学生姓名', sage tinyint unsigned comment '学生年龄', sgender enum('m','f') not null default 'm' comment '学生性别', cometime datetime not null default NOW() comment '入学时间');

将字段插入到某个字段后面

mysql> alter table stu add xmg int after ljk;

删除某个字段

mysql> alter table stu drop ljk;

修改字段的属性

mysql> alter table stu change qls haoda int;

修改字段名和属性

mysql> alter table stu modify qls char(10);

(六)DCL数据控制语言

1.grant

grant all on *.* to root@'%' identified by '1'; grant all privileges on *.* to pri2@'%' identified by '1'; grant all on *.* to root@'%' identified by '1' with max_user_connections 1;

revoke

mysql> revoke select on *.* from pri1@'%';

(七)DML数据操作语言

1.增

insert

#注意:所有值必须一一对应,如果没有就给null 
mysql> insert into student2 values(null,'qls',18,'m',now()); 
#注意:只需要给前面的key添加value,前面key值的顺序可以随意,后面value必须对应
mysql> insert into student2(sname,sage,sgender) values('zls',18,'m');
mysql> insert into student2(sage,sname,sgender) values(18,'zls','m'); 
#插入多条数据 mysql> insert into student2(sname,sage,sgender) values('zls',18,'m'),('qls',18,'f');

2.改

update

mysql> update student2 set sgender='f'; #规范用法 必须接where条件 
mysql> update student2 set sgender='f' where sid=1; mysql> update student2 set sage=20 where 1=1;

3.删

delete

# 必须接条件 mysql> delete from student2 where sid=2; mysql> delete from student2 where sid>3 and sid<9;

4.查

mysql> select * from student2 where state=1;

使用update代替做伪删除**

1.添加一个状态列

mysql> alter table student2 add state enum('1','0') default '1';

2.使用update删除

mysql> update student2 set state='0' where sid=9;

3.查询的时候接条件

mysql> select * from student2 where state=1;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!