博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SQL】- 基础入门
阅读量:6244 次
发布时间:2019-06-22

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

hot3.png

数据库: mysql

数据库管理工具:DBeaver(开源)

基础建表语句:(图书编号 书名 作者 性别 价格 供应商)

注意: sql语句字符与大小写无关

create table books(  id int primary key auto_increment,  -- 定义主键,并声明主键值增长策略  bookName varchar(10), -- 字符类型:长度可变  author varchar(10) not null, -- 约束不能为空  gendor char(2) check (gendor in ('M','F')), -- 性别约束:男或女  price float, -- 浮点型  vendorId int, -- 出版社代号  foreign key(vendorId) references vendors(id) -- 建立外键约束)character set utf8 collate utf8_general_ci; -- 建表时确认表数据的编码格式

书籍发布商数据表

create table vendors (	id int primary key auto_increment,	name varchar(100) NOT NULL,	tele varchar(100) NULL,	manager varchar(100) NULL)character set utf8 collate utf8_general_ci;

删除数据表

drop table books

数据表中插入完整字段

books表:insert into books values(1, '西游记', '吴承恩', 'M',20.5, 1);insert into books values(2, '三国演义', '罗贯中','F', 49.4,2);insert into books values(3, '水浒传', '施耐庵','M', 23.5, 3);insert into books values(4, '红楼梦', '曹雪芹', 'M', 50.5, 3);insert into books values(5, '史记', '司马迁', 'M', NULL, 2);insert into books values(7, 'AAAA', '吴承恩', 'M', 30.21, 3);vendors表:insert into vendors values(1,'北京大学出版社','020-25325452','张三');insert into vendors values(2,'清华大学出版社','0755-27327552','李四');insert into vendors values(3,'人民日报出版社','010-25322452','王五');insert into vendors values(4,'南方日报出版社','0783-25565452','马六');

数据表中传入部分字段

格式:表名后定义需存放的字段

insert into books(bookName,author,gendor,price,vendorId) values('World War','Stepheon','F',25.4,1);

删除数据表中的记录

delete from books where id=1;

更新数据表记录

update books set gendor='M', price=20 where id=1;

数据表查询

select *from books;select *from vendors;

查询数据记录的部分字段:字段\表别名:as关键字可缺省

select bookName 书名,author as 作者,price 价格 from books  allBooks where allBooks.id=1;

条件语句: where、and、or

-- 算术表达式:查询价格大于23的数据select *from books where price > 23;-- 逻辑表达式:and只有两个条件都满足才为真select *from books where (2>1) and (3>2);-- or:两个条件只要有一个满足即为真select *from books where (1>2) or (2>1) ;-- and和or的优先级:and的优先级大于orselect *from books where gendor='M' and id=1 or price>50; -- 等价于:(gendor='M' and id=1) or price>50:相当于合并满足两个条件的结果-- and和or的优先级问题在进行sql拼接时容易产生sql注入漏洞select *from books where gendor='M' and 1 or 1=1; -- 等价于:(gendor='M' and 1) or 1=1:条件永远为真

sql统计函数

select min(price),price from books; -- 查询价格的最小值select max(price),price from books; -- 查询价格的最大值select avg(price) from books; -- 查询价格的平均值select sum(price) from books; -- 查询价格的总价select ucase(bookName) from books; -- 将字段值转换为大写字母select lcase(bookName) from books; -- 字段值转换为小写字母select length(bookName) from books where id=6; -- 获取字段的大小select round(price) from books where id=2;  -- 四舍五入

格式化函数

--日期格式化select date_format(now(),'%Y-%m-%d'),allBooks.* from books as allBooks;-- 数字截取:最后一位四舍五入select formate(price,1),allBooks.* from books as allBooks; -- 数字截取:其他位直接舍弃select truncate(price,1),allBooks.* from books as allBooks;

order by: 默认升序排列

select *from books order by price;select *from books order by price asc;  -- 升序:默认select *from books order by price desc;  -- 降序:默认

group by分组:按字段划分不同的组,默认按分组字段的升序排列

select * from books group by gendor order by id;select *from books --:等价于select *from books group by id  -- 因为主键唯一,主键分组得到的数据即数据表所有的记录-- group by ... having联合使用:筛选出书籍单价总额大于60的男性作者信息select author 作者,sum(price) 总价,gendor 性别 from books where gendor='M' group by author having sum(price)>60-- count(*): 满足条件的记录数  -- count(字段名):满足条件的记录的特定字段非NULL值行的个数: count(*) >= count(字段数)-- 查询满足条件的记录的条数(行数):5select count(*) from books where gendor='M'; -- 查询满足添加的记录中字段值的个数:4select count(price) from books where gendor='M'; -- 限制获取的记录数-- 表示记录数select *from books where gendor='M' limit 2;  -- 表示从满足记录的第1记录之后的连续两条记录(不包含第一条)select *from books limit 1,2;

转载于:https://my.oschina.net/yangzhiwei256/blog/3013895

你可能感兴趣的文章
PostgreSQL数据类型-货币类型
查看>>
eclipse.ini、flashbuilder.ini内存设置和堆栈非堆栈问题
查看>>
线程下变量-原子操作 __sync_fetch_and_add等等
查看>>
Java 远程调试
查看>>
android 一个小例子说明handler和AlertDialog的简单使用
查看>>
解密Redis持久化
查看>>
[转载]使用 CTTeleyphonyCenter 截获来去电及短信消息
查看>>
linux 防火墙命令
查看>>
okhttp3使用
查看>>
android 6.0 权限设置详解
查看>>
php面向对象编程
查看>>
Apache HTTPD 正向(forward)和反向(reverse)代理
查看>>
工厂模式的jdbc
查看>>
十三周三次课(6月21日)
查看>>
linux目录结构详细介绍
查看>>
分享微信开发Html5轻游戏中的几个坑
查看>>
NBU MediaServer DrivePATH Missing
查看>>
useradd/usermod -p 指定用户密码
查看>>
CSS第一天
查看>>
memcache与一致性HASH算法
查看>>