当前位置: 首页 > news >正文

大二一个学期学这么点内容,没有概念,只有实操

如何查看所有的数据库:

Show databases;

如何进入某个数据库:
use xxx;

如何新进数据库:

Create database jx;

如何删除数据库:

Drop database jx;

如何查看所有的表格:

Show tables;

如何创建数据表:

create table teacher(id int,name

varchar(10),address varchar(100),score float,time date);

如何修改表(添加列):

alter table teacher add phone varchar(11);

如何修改表(删除列):

alter table teacher drop score;

如何修改表(修改列):

alter table teacher modify phone int;

如何删除表:

drop table student;

表的约束管理:

非空约束 not null

唯一约束 unique

主键约束 primary key

默认约束 default

示例:

create table student

(id int primary key, name varchar(10) not null, phone varchar(11) default "18502348498",address

varchar(100) unique)

对于数据库中表的操作有4种操作:

增删改查

增加操作:

INSERT INTO employees_cn

 (employee_name, employee_address, employee_price) VALUES ("李兰","长沙",14500),("李兰妈妈","株洲",9000);

删除操作:

DELETE FROM employees_cn WHERE employee_name="诸葛亮";

DELETE FROM employees_cn WHERE employee_name="周杰" AND employee_address = "深圳";

修改操作:

UPDATE employees_cn set employee_address = "佛山" , employee_price = 51000 WHERE employee_name = "马超";

查询操作:

SELECT * from employees_cn WHERE employee_price >= 20000;

SELECT 1+2*8+5/2 as result;

去重:

SELECT   DISTINCT   employees_price    FROM  employees_cn;

分页:

SELECT * FROM city LIMIT 3,15;

解释:3:是从4开始,不包括3

15:往后数15行。

使用完全限定表名:

SELECT city.population FROM city;

排序:

SELECT*from employees_us    ORDER  BY    employees_price;

升序:asc,可以不写,因为默认升序。

降序:desc

以多个序列排序:

当第一个序列起作用时,那么后面的列不起作用,反之,后面的列才起作用。

SELECT  *  from    employees_us       ORDER  BY   employees_price,employees_name;

Where的使用:

SELECT * from  employees_cn where employees_price BETWEEN 10000 and 20000;

SELECT  *  from    employees_cn       where

employees_price>=10000and employees_price<=20000;

SELECT   *   from    employees_cn       where

employees_price >= 10000 and employees_price <= 20000

ORDER BY employees_price;

SELECT  *  from    employees_cn       where

Employees_name is null;

组合where使用:

And:

Select * form employees_cn where employees_name=”周杰” and employees_address=”抚州”;

Or:

Select * form employees_cn where employees_name=”周杰” or employees_address=”抚州”;

In:

Select * form employees_cn where employees_id=18 or employees_id=21 or employees_id=23;

等于

Select * form employees_cn where employees_id in(18,21,23);

Not in:

Select * form employees_cn where employees_address not in(“抚州”,”株洲”,”上海”);

Like的使用

当like单独使用的时候,它相当于=。

Select * from employees_us where employee_name like “jerry”;

通配符:

%:表示任意多个字符

Select * from employees_us where employee_name like “%jerry%”;

_:表示任意一个字符

Select * from employees_cn where employee_name like “张_”;

转义字符:

Select * from employees_cn where employee_name like “jerry/_%”escape”/”;

拼接字段

SELECT concat(employee_name,"---",employee_address) as "结果" FROM `employees_cn`;

计算字段

SELECT sid*score FROM `score`;

函数的使用

SELECT concat(employee_name,"---",employee_address) as "结果" FROM `employees_cn`

SELECT sid*score from score;

select LEFT("你好,你吃饭了吗?",4)

select RIGHT("你好,你吃饭了吗?",4)

select left(employee_name,2) from employees_cn where employee_id = 21

select LENGTH("你好")

select length(employee_name) from employees_cn where employee_id = 21

select SUBSTRING("你好,你吃饭了吗???",2)

select SUBSTRING("你好,你吃饭了吗???",2,4)

select SUBSTRING(employee_name,2) from employees_cn where employee_id = 21

日期处理函数

获取当前日期

SELECT NOW();

SELECT SYSDATE();

SELECT CURRENT_TIMESTAMP;

SELECT CURRENT_TIMESTAMP();

SELECT CURRENT_DATE;

SELECT CURRENT_TIME;

日期格式化:

select DATE_FORMAT('2008-08-09 22:23:01','%y-%m-%d %h:%i:%s');

字符串变日期:

select STR_TO_DATE('08/09/2008','%m/%d/%y');

时间变秒

select TIME_TO_SEC('01:00:05');

天数变日期

SELECT MAKEDATE(2019,300);

SELECT DAYOFYEAR("2019-10-23");

数值函数:

四舍五入

select ROUND(48.3847)

select ROUND(48.3847,1)

select MOD(CEIL(ROUND(employee_price)), 10) from employees_cn

向上取整

select CEIL(48.2)

向下取整

select FLOOR(48.9)

取余

SELECT MOD(18,3)

开方

SELECT SQRT(9)

指数

select POW(2,10)

绝对值

select ABS(-9)

平均值

Select avg(score) from score

计数

Select count(*) from score

Select count(distinct name) from score

最值

Select max(score), name from score

Select min(score), name from score

求和

Select sum(score) from score

分组查询

SELECT round(avg(score)),class from score GROUP BY class;

过滤分组

SELECT avg(score) as a,class from score GROUP BY class HAVING a < 80;

SELECT score from score where score < 80

where作用于表之后,having作用于组之后

select子句顺序

from, on, join, where, group by, having, select, distinct, order by, limit

select round(avg(score),1) as a, class from score where score > 70 GROUP BY class HAVING a >= 85 ORDER BY a LIMIT 0,2;

子查询:

select * from score where score = (select min(score) from score)

也就等于下面两个语句之和

select min(score) from score;

select * from score where score = 60;

连接查询

适用于多表操作

外连接:包括左连接、右连接

SELECT a.*, b.* from student_info a left join student_score b on a.student_id = b.student_id

SELECT a.*, b.* from student_info a right join student_score b on a.student_id = b.student_id

笛卡尔积连接:包括内连接、自然连接、交叉连接、自连接(原理: 笛卡尔积)

select a.*, b.* from student_info a inner join student_score b

select a.*, b.* from student_info a inner join student_score b on a.student_id = b.student_id

SELECT A.*, B.* from student_info A cross join student_score B

SELECT A.*, B.* from student_info A cross join student_score B on A.student_id = B.student_id

SELECT A.*, B.* from student_info A natural join student_score B

select B.* from score as A join score as B on A.score < B.score and A.name = "王兰"

组合查询

select vend_id, prod_id, prod_price from products where prod_price < 5 union select vend_id, prod_id, prod_price from products where vend_id in (1001,1002)

select vend_id, prod_id, prod_price from products where prod_price < 5 union all select vend_id, prod_id, prod_price from products where vend_id in (1001,1002)

select vend_id, prod_id, prod_price from products where prod_price < 5 union all select vend_id, prod_id, prod_price from products where vend_id in (1001,1002) order by prod_price

union的结果去重,而union all的结果不去重

视图

如何创建视图 create view abc as select * from employees_cn where employee_id BETWEEN 14 and 20

视图的操作和表的操作相同

索引

作用:提高检索速度

如何创建索引 create index aaa on employees_cn(employee_name, employee_price)

如何使用索引

事务

  1. 概念
  2. 特征 原子性 一致性 隔离性 持续性

start TRANSACTION;

INSERT into score (name, class, score, sex, phone) VALUES ("智慧化", "软件1" ,'43', "女", '1213');

SAVEPOINT p;

INSERT into score (class, score, sex, phone) VALUES ("张晓霞", "软件1", "23", "女", '12133');

ROLLBACK to SAVEPOINT p;

commit;

常量

变量

用户变量 @后为变量

set @name = "李兰";

select * from employees_cn where employee_name = @name;

select @xxx := (@xxx := 8) + 2;

局部变量

作用于存储过程

DECLARE abc int DEFAULT 0;

系统变量

Select CURRENT_TIME

Select CURRENT_USER

If控制语句

Case控制语句

循环控制语句

自定义函数

存储过程

触发器

http://www.lryc.cn/news/63545.html

相关文章:

  • AppWeb 身份验证绕过漏洞 (CVE-2018-8715)
  • 为什么监控摄像头画面不如手机拍摄视频画面清晰
  • EU GMP附录一与关键区域空气微生物取样方案及相关法规标准解读
  • 【软件测试】自动化测试日志问题该怎么解决?测试老鸟总结方案...
  • 快速响应 智慧应急|大势智慧亮相第三届武汉国际安全应急博览会
  • MySQL数据库——MySQL DELETE:删除数据
  • 管家婆安装导致电脑蓝屏问题解决方案
  • Compiler Lab1- 自制词法分析器
  • 构建API的战斗——与来自Kong的Marco Palladino的问答
  • 华为OD机试 - 对称美学(Python)
  • argparse.ArgumentParser
  • 大数据Doris(五):FE 扩缩容
  • react相关概念
  • 计算机的硬件系统的组成
  • Python基础-列表元组
  • 【校招VIP】拿到offer就躺平?转正前需要知道的这些事儿...
  • 考研拓展:汇编基础
  • 10 【Sass语法介绍-继承】
  • 魔兽worldserver.conf 服务端配置文件说明
  • 关于电信设备进网许可制度若干改革举措的通告
  • TuGraph 开源数据库体验
  • 【C++】18.哈希
  • C# 利用TabControl控件制作多窗口切换
  • 论文阅读《PIDNet: A Real-time Semantic Segmentation Network Inspired by PID》
  • SOA与中间件、基础件的发展
  • 渗透测试 | 目录扫描
  • 基于Springboot的班级综合测评管理系统的设计与实现
  • 比较全的颜色RGB值对应表 8位 16位
  • freertos使用基础
  • Spring Boot引用外部JAR包和将自己的JAR包发布到本地Maven库