博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL数据操作
阅读量:6736 次
发布时间:2019-06-25

本文共 5246 字,大约阅读时间需要 17 分钟。

1.向表中插入数据操作

INSERT into user_info values(1, 'fqq', '女')    -- 插入数据,在user_info表中按照字段顺序进行插入数据,此时插入的字段不能少INSERT into user_info(id, names) VALUES(2, 'why') -- 插入数据,指定插入到user_info表中的id和name字段中,前提是剩余没有被插的字段必须有默认值INSERT into user_info(id, names) VALUES(3, 'w'), (4, 'wh')    -- 一次插入多条数据INSERT into user_info(names, sex) select `names`, sex from user_info where id = 1; -- 从user_info表中查询出来id为1的那一条记录,只要这条记录的name和sex字段,然后插入到user_info中

 2.删除表中的数据

DELETE form user_info where id = '4'; -- 删除user_info表中id为的记录。删除指定的数据DELETE form user_info;    -- 删除user_info表中的所有数据。如果表中有自增主键,如递增到10了,使用这个语句删除表中的所有数据后,再插入数据的时候,其递增主键的值为11。 不会删除递增主键所记录到哪个值了
TRUNCATE user_info;    -- 删除user_info表中的所有数据。删除的速度比delete form user_info快。 会删除自增主键的信息。再插入数据的时候递增会从1开始。其与delete 删除表数据的区别还有很多,后面再说

4.修改更新表中的数据

update user_info set sex = '男' where id = '2'; -- 修改更新id为2的那条记录的sex为男update user_info set sex = '女', names = 'xiaoqiao' where id = '2';    -- 修改更新id为2的那条记录的sex为女,names为xiaoqiao

5.查询表中的数据

5.1单表查询

5.1.1创建一张表先。

 (1)autp_increment是自增属性。PROIMARY KEY(id)意思为id设置为主键表不可重复。 ENGINE=INNODB是设置搜素引擎。auto_increment=13表示自增属性从13开始自增。charset=utf8表示编码为utf-8

create table peron (    id int(11) not null auto_increment,    name varchar(50) not null,    age tinyint(4) default '0',    sex enum('男','女','人妖') not null default '人妖',    salary decimal(10, 2) not null DEFAULT '250.00',    hire_date date not null,    dept_id int(11) default null,    PRIMARY KEY (id)) ENGINE=INNODB auto_increment = 13 DEFAULT CHARSET = utf8;

  (2)创建数据

  

# 教学部insert into peron values('1', 'alex', '28', '人妖', '53000.00', '2010-06-21', '1');insert into peron values('2', 'wupeiqi', '23', '男', '8000.00', '2011-02-21', '1');insert into peron values('3', 'egon', '30', '男', '6500.00', '2015-06-21', '1');insert into peron values('4', 'jingnvshen', '28', '女', '6680.00', '2014-06-21', '1');# 销售部insert into peron values('5', '歪歪', '20', '女', '3000.00', '2015-02-21', '2');insert into peron values('6', '星星', '20', '女', '2000.00', '2018-01-30', '2');insert into peron values('7', '格格', '20', '女', '2000.00', '2018-02-27', '2');insert into peron values('8', '周周', '20', '女', '2000.00', '2015-06-21', '2');#市场部insert into peron values('9', '月月', '21', '女', '4000.00', '2014-07-21', '3');insert into peron values('10', '安琪', '22', '女', '4000.00', '2015-07-15', '3');# 人事部insert into peron values('11', '周明月', '17', '女', '5000.00', '2014-06-21', '4');# 鼓励部insert into peron values('12', '苍老师', '33', '女', '1000000.00', '2018-02-21', null);

(3)此时表结构与表内容为

5.1.2简单的数据查询

select * from person;    -- 查询所有数据select name,sex from person; -- 查询person表中的所有name和sexselect name, sex as '性别' from person;  -- as的意义为sex字段起别名,原来的sex名还是可以用的select salary + 200 from person;    -- 查询person表中所有的salary记录,查询出来后+200后显示,没有修改原数据记录select distinct age from person; -- 去重查询person表中的所有age记录。disinct关键字认为被修饰的所有字段都重复了,才认为重复

5.1.3条件查询

  条件查询使用where关键字对简单查询的结果集进行过滤

  (1)比较运算符:> < <= >= = <>(1=)

select * from person where age > 20; -- 查询person表中age大于20的数据select * from person where age <= 20; -- 查询person表中age小于等于20的数据SELECT * from person where age <>20; -- 查询person表中age不等于20的数据select * from person where age != 20;    -- 查询perso表中age不等于20的数据

  (2)null关键字:is null,not null

select * from person where dept_id is null; -- 查询person表中dept_id字段为null的记录select * from person where dept_id is not null; -- 查询person表中dept_id字段不为null的记录select * from person where name = ''; -- 查询person表中name为空字符的记录

  (3)逻辑运算符:and or    ,多个条件时,需要使用逻辑运算符进行连接

select * from person where age = 23 and salary = 29000;    -- 查询person表中age等于23 并且 salary收入为29000的记录select * from person where age = 23 or salary = 29000; -- 查询person表中age等于23 并且salary等于29000的记录
person where not(age = 23 and salary = 29000); -- 查询person表中age=23并且salary=29000意外的其他记录

5.1.4区间查询

  关键字between 10 and 20;表示获得10到20区间的内容

select * from person where age between 18 and 20;    -- 查询person表中age 18到20的记录,前后包含

5.1.5集合查询

  关键字:in,not null

select * from person where id =1 or id = 3 or id = 5;    -- 查询person表中id为1,3,5的记录select * from person where id in(1, 3, 5);    -- 查询person表中id为1,3,5的记录SELECT * from person where id not in(1, 3, 5); -- 查询person表中id不为1,3,5的记录

5.1.6模糊查询

  关键字:like,not like

  %:任意多个字符

  _:只能是单个字符

select * from person where name like '%e%'; -- 查询person表中name字段中含e的记录,包含指定参数select *from person where name like '%e';    -- 查询person表中name字段中以e结尾的记录,以什么结尾select *from person where name like 'e%';    -- 以什么开头select * from person where name like '__e%'; -- 查询表中name字段中第三个字符含有e的记录。 _表示占位符的意思,一个_占位一个字符。select * from person where name like '__'; -- 查询person表中name字段中占有两个字符的记录

5.1.7排序查询

  关键字:ORDER BY 字段1 DESC,字段2 ASC

  ORDER BY 和where一起用时,必须写在where 条件的后面

select * from person ORDER BY salary; -- 查询person表中的所有数据,记录按照salary进行正序(从小到大排序)。排序查询select * from person ORDER BY salary asc; -- 查询person表中的所有数据,记录按照salary进行正序(从小到大排序)。排序查询select * from person ORDER BY salary desc; -- 查询person表中的所有数据,记录按照salary进行倒序(从大到小排序)。排序查询select * from person where age > 20 ORDER BY salary desc; -- 查询person表中age>20的记录,并且按照salary进行倒序排序select * from person ORDER BY name desc;    -- 查询person表中name的数据,倒序排序,中文不支持进行排序select * from person ORDER BY convert(name using gbk) asc; -- 中文要想进行排序,要加入convert(name using gbk)表示name字段使用gbk进行编码查询(此时中文也按照首字母拼音的顺序排序)。这句话意思为查询person数据,以name字段进行正序排序查询

 

转载于:https://www.cnblogs.com/whylinux/p/9893077.html

你可能感兴趣的文章
linux shell 查看进程的可执行程序路径
查看>>
今天我终于搞明白的HSRP 的操作命令和原理
查看>>
资料集合
查看>>
cookie注入&中转注入笔记
查看>>
Linux常用命令大全-toolfk程序员在线工具网
查看>>
springmvc+mybatis+sql server实现简单登录功能【转】
查看>>
Linux禁Ping的方法
查看>>
ssh不断线的配置方法
查看>>
CentOS后台运行和关闭、查看后台任务命令
查看>>
Mysql学习总结(11)——MySql存储过程与函数
查看>>
ALTER EXTSEQNO must be performed on each corresponding downstream reader
查看>>
生产环境linux服务器系统安全配置
查看>>
我的友情链接
查看>>
MySql中 delimiter 详解
查看>>
浏览器history操作实现一些功能
查看>>
你那么喜欢看”干货“,是因为你根本不想下功夫。
查看>>
Introduction to ASP.NET MVC 4
查看>>
20172303 2017-2018-2 《程序设计与数据结构》结对编程项目-四则运算 第二周
查看>>
程序员需要具备哪些素质
查看>>
LCM性质 + 组合数 - HDU 5407 CRB and Candies
查看>>