MySql中SQL语句CRUD详解

一般软件开发人员涉及到数据库,比较多的是数据的增删改查;毕竟我们不是数据库管理人员(数据库的高级优化,灾难性的回复等);

SQL介绍

全称:Structured Query Language 中文名称:结构化查询语言;

功能:是一种定义,操作,管理关系数据库的句法。大多数关系型数据库都支持;

组成:DQL:数据查询语言;DML:数据操作语言;DDL:数据定义语言;DCL:数据控制语言;TPL:事务处理语言;CCL:指针控制语言;

数据库

定义:存储数据仓库

特点:数据共享,相对安全;

数据库模型分类:关系型数据库是主流,层状型数据库,网状型数据库;

数据库管理系统(DBMS)

常见关系型数据库管理系统(DBMS):Oracle、MySql、SQLite、SQL Server、Access、DB2、Informix、Prostgre SQL

注意:通常我们说的MySql数据库其实是MySql数据库管理系统

MySql中的SQL语句

首先要安装MySql软件,安装之后才能在CMD命令行中或者其他数据库可视化工具中使用SQL语句操作数据;

以下内容都是CMD命令行中使用SQL语句;cmd进入命令行,输入命令:mysql -u用户名 -p密码 进入mysql客户端;

DDL:数据库和表的创建

全拼:Data Definition Language 数据定义语言,主要是创建数据库和表的结构;关键字:Create  Alter  Drop  Truncate 

数据库的操作

1,创建数据库

create database  test;#注意要有分号,数据库名test

2,查看创建数据库的语句

show create database test;

3,查看创建的数据库

#查询所有创建的数据库
show databases;

4,使用数据库

#使用某个数据库
use test;

5,删除数据库

 drop database test;

6,创建数据库并指定字符集

create database test character set gbk;

7,查看数据库中所有的校验规则

show collation;

8,查看数据库中部分校验规则

show collation like '%gb%';  #like模糊查询

9,设置校验规格和字符集

create database mydb character set gbk collate gbk_bin;

10,修改字符集

alter database mydb character set utf8; #注意不要写成utf-8了

MySql中数据类型:bit, tinyint, bool 或者 boolean,smallint, int , bigint, float, double, char, varchar, blob或longblob, text, data/datatime/timestamp;

表的操作

1,创建表

use mydb; #进入要创建表的数据库
create table test(id int,name varchar(20)); #表名test

2,查看创建表的语句

show create table test;

3,创建表并指定字符集

create table test2(id int ,name varchar(20)) character set utf8;

4,插入数据

insert into test2(id,name) values(22,'你好');
#简写 insert test2 values(33,'妹子'); 省略字段,意味着所有字段都必须给值(自增自减除外)

如果报错可能是没有设置Mysql客户端字符集,设置客户端字符集

set character_set_client = gbk; #设置客户端字符集为gbk

5,查询表中的数据

select * from test2;

如果显示的中文还是乱码,可是没有设置Mysql客户端结果集的字符集

set character_set_results = gbk;

6,更新数据

 update test2 set name = '张三' where id =22; #把id =22行中的name 的值改为:张三

6.1,将表中所有的name字段改为:王五;

update test2 set name = '王五';

6.2,修改多个字段

 update test2 set name = '张三' id = 1 where id =22;

7,删除数据

delete from test2 where id =22; #删除id=22的数据

7.1,删除所有数据

delete from test2 ;

7.2,删除所有记录

truncate table test2;

8,更改表的结构

alter table t1 add time varchar(20); #添加一个time列

8.1,删除某列

 alter table t1 drop column time;

8.2,查看表的结构

desc t1;

9,删除表

drop table test2;

 DQL

全拼:Database Query Language 中文名:数据查询语言 

作用:查询数据

1,查看所有数据

select * from t1; # 其中t1是表名 *代表所有的字段

2,查看某条数据,一般根据id查询,因为id一般唯一;

select * from t1 where id = 5; #查询id=2的这条记录

3,查询id在 2 - 5之间的数据

select * from t1 where id>=2 and id<=5 ;

或者

select * from t1 where id between 2 and 5;#包括2和5

4,参看所有的某个字段的数据;

select name from t1;

5,参看所有的某些字段的数据;

select id,name from t1; # id,name查询的字段名  t1表名

6,模糊查询

表达式:select * from 表名  where 字段名  like 字段表达式 (%表示任意字符数,_表示任意的一个字符,[ ] 表示在某个区间)

6.1,查询名字以‘张’开头的数据

select * from t1 where name like '张%';

6.2,查询名字中含有‘赵’,且名字的长度是3

select * from t1 where name like '赵__' or name like '_赵_'or name like '__赵' ; #注意下划线的个数

7,查询表中名字(某个字段)不同的记录

 select distinct name from t1;

8,查询表中(某些字段)不同的记录

select distinct name,id from t1; # 查询id 和 name 都不相同的记录

9,字段可以有表达式

select id +10 ,name from t1; #查询出id是加10后的

10,给字段起别名

select id as '序号' , name as '名字' from t1;

或者:省略as
select id '序号' , name '名字' from t1;

11,几个int 数据类型的字段可以加减算法

select id, a + b + c from t2;

12,查询中in关键字使用  in:查询在in列表中的值

select * from t1 where address in('北京','上海');

13,排序(order by)

13.1,升序排序

select * from t2  order by a asc; #asc代表升序  可以省略,默认是升序

13.2,降序

select * from t2  order by a desc; #desc代表降序
发布了93 篇原创文章 · 获赞 50 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/ezconn/article/details/103840699