mysql cmd 条件语句_MySQL命令(SQL语句)

1.mysql登陆

完整登陆命令:

mysql -u root -p xxxxx -h 127.0.0.1 -P 23306

语法:mysql -u 用户名 -p 密码 -h mysql服务器的IP地址 -P 使用的端口号

非完整登陆命令:

mysql -u root -p 回车(回车后再输入密码)

mysql -u root -p xxxxx -h 127.0.0.1 回车(回车后再输入密码)

2.SQL语句:

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

1. 数据查询语言DQL

数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE

子句组成的查询块:

SELECT

FROM

WHERE

2 .数据操纵语言DML

数据操纵语言DML主要有三种形式:

1) 插入:INSERT

2) 更新:UPDATE

3) 删除:DELETE

3. 数据定义语言DDL

数据定义语言DDL用来创建数据库中的各种对象-----表、视图、

索引、同义词、聚簇等如:

CREATE TABLE/VIEW/INDEX/SYN/CLUSTER

| | | | |

表 视图 索引 同义词 簇

DDL操作是隐性提交的!不能rollback

4. 数据控制语言DCL

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制

数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

1) GRANT:授权。

2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。

回滚---ROLLBACK

回滚命令使数据库状态回到上次最后提交的状态。其格式为:

SQL>ROLLBACK;

3) COMMIT [WORK]:提交。

在数据库的插入、删除和修改操作时,只有当事务在提交到数据

库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看

到所做的事情,别人只有在最后提交完成后才可以看到。

提交数据有三种类型:显式提交、隐式提交及自动提交。下面分

别说明这三种类型。

(1) 显式提交

用COMMIT命令直接完成的提交为显式提交。其格式为:

SQL>COMMIT;

(2) 隐式提交

用SQL命令间接完成的提交为隐式提交。这些命令是:

ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,

EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

(3) 自动提交

若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,

系统将自动进行提交,这就是自动提交。其格式为:

SQL>SET AUTOCOMMIT ON;

注意:

①进入mysql后所有命令必须以分号(;)结尾

②如果你要查一些数据时显示乱,屏幕宽度不够展不开,你就在命令结尾加\G最后不要加分号,这样显示就会清晰了.

③如果输错命令想退出来不执行,就输入\c回车即可,如下图

ed25f7159b5c1e04ccc7155545f2b81c.png

④如果少写一个引号,直接\c是退不出来的,需要先写'再写\c就行了如下图

5d28f6168c9e1d131805db72ed4bb52e.png

3.查看本数据库版本与编码集

进入数据库后输入\s

21f82d14fe7369bf9a48c9da8e1f46cc.png

4.数据库的增删改查

数据库的增删改查说白了其实就是文件夹的增删改查

create database db1 charset utf8;(这里在创建库时指定了编码集)

create database db11; (不指定编码集也可)

此时就在你安装数据库的文件夹下的data文件中新增了两个文件夹(db1和db11)

acd0ddc174c38e021262cc37d166958c.png

查看所有数据库时,有数据库安装时自带的数据库也一并显示出来了

0890c2e864f0110b536cfbabd5a25bec.png

show create database db1;(查看刚建的数据库的配置)

show databases;(查看所有数据库--库名)

查看当前所在的数据库:select database();

由于你my.ini文件中配置制定了编码集,所以不指定编码集的数据库db11也是utf8.

fc1321ffbbeff822abde313c793238c6.png

alter database db1 charset gbk;(将数据库db1的编码集改为gbk了)

切换数据库

use +数据库名+;

drop database db1;(删除数据库db1)

5.数据库中表的增删改查

表的增删改查可以看做是对文件的增删改查

增加表时你需要先进入一个数据库(use +数据库名+;),增加表时就在你进入的数据库中新增表

create table t1(id int,name char); 新增表t1,表中有两个字段id和name,id是整形,name是字符串

show create table t1;(查看该表具体信息)

如果没进入数据库你想直接查就在对应的表名前加数据库名.

show create table db1.t1;

show tables;查看当前数据库下所有表名

desc t1;查看某表中所有字段以及字段的属性(desc是describe的缩写)

select id from n; 查询表n中id字段的所有内容

select * from n;查询表n中所有内容

alter table t1 modify name char(6);(将name字段属性改为字符串,宽度改为6,默认宽度是1)modify是固定写法

alter table t1 change name NAME char(7);(修改字段名name改为NAME,并且宽度改为7)change是固定写法新的名字NAME后面必须接新字段的属性,否则报错,你可以是新的属性也可以是原来的属性.

修改表名:

alter table ttt rename xxx;将ttt表名改为xxx

增加字段:

alter table xxx add n char(10) ; 在xxx表中增加一个n字段,数据类型为char长度为10

alter table xxx add n char(10) first; 将n字段添加到第一个字段位置

alter table xxx add n char(10) after id; 将n字段添加到id字段位置的后面

drop table t1;删除表t1

删除字段:

alter table xxx drop n ;删除xxx表中n字段

复制表格(可以在同数据库但是不要重名,也可以在不同数据库可以重名,)

①既复制表结构,又要数据:

create table t1 select host,user from mysql.user; (就是把你查到的某个表的数据select...,直接在创建表格时直接写在后面就行了,写在了表名后面)

create table t1 select * from db1.ttt;

②只要表结构,不要数据:

法一:就是在后面加个不成立的条件,让他查不到对应的数据就行了,查到的内容为空就只剩表结构了

create table t1 select host,user from mysql.user where 1>2;

法二:like

create table t5 like t2;这样就把t2的表结构复制过来创建了t5

6.行记录(表中内容)的增删改查

insert  into t1(id,name) values(1,'egon1'),(2,'egon2'),(3,'egon3');(新增了3条行记录,id为1,name为egon1...)into可以省略

insert   into  t1  values(1,'egon1'),(2,'egon2'),(3,'egon3');不写字段,默认就按照所有字段来插入

select id,name from db1.ttt;(查看ti表中id和name两个字段)这里吧数据库db1也加上了,其实你在db1数据库下就不用了写db1,直接写表名字即可

select * from db1.ttt;查询t1表下所有字段

afe66d4a424ebda6e71b3934d2259bfc.png

查询某个字段中数据的长度

select char_length(name) from t4; 查询t4表中name字段的内容的长度.

update db1.t1 set name='wwe';将t1表中所有name字段全部写成wwe

update db1.t1 set name='ALEX' where id=2;将id等于2的name字段改成ALEX

delete from t1;(将所有记录全部删,表变成空表)这个不会清空自增长的计数,delete一般都会与where连用,来固定删除某行记录.

truncate t1 ;会清空自增长的计数,再插入行记录时id会从1开始

delete from t1 where id=2;(只删除id=2的记录)

7.存储引擎

存储引擎就是表的类型

查看支持的所有存储引擎

show engines;

或show engines\G 查的比较详细(有\G时不加分号结尾)

25cd45be39bcd2223a0b74b888b9a3ae.png

创建表时指定存储引擎:

create table t1(id int)engine=innodb;不指定默认就是innodb

8.单表查询:

单表查询

select distinct 字段1,字段2,字段3 from 库.表

where 条件

group by 分组条件

having 过滤

order by 排序字段

limit n;

distinct是去重

9.简单查询:

select name,salary*12  from employee; 在查询时可以进行运算,一个月工资,乘12就变成了年薪

select name,salary*12  as nianxin  from employee; 在显示时就会将salary的字段名改为nianxin

定义显示格式:(拼接字符串)用concat

select  concat ('姓名:' ,name, ' 性别:',sex) as info ,concat('年薪:',salary*12) as annual_salary from employee;

显示如下:

5fb5752ae6e757de7888fb3d3e88cc04.png

另一种:

select concat(name,':',sex,':'age) from employee;

66bcef81175c814a58ef78e564abd0a0.png

换一种写法:用concat_ws他会在两个字段中间都加入相同的内容

select concat_ws(':',name,sex,age) from employee;

10600eeed3eae8b25cddbdbbf7204915.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值