Mysql
Mysql数据库相关
C位出道_2022
这个作者很懒,什么都没留下…
展开
-
mysql四种方式给字段添加索引
1.添加主键ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);// 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。2.添加唯一索引ALTER TABLE tbl_name ADD UNIQUE index_name (col_list);// 这条语句创建索引的值必须是唯一的。3.添加普通索引ALTER TABLE tbl_name ADD INDEX index_name (col_list);// 添加..原创 2021-08-12 20:10:42 · 1304 阅读 · 0 评论 -
mysql 触发器
描述描述构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。CREATE TABLE employees_test(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);CREATE TABLE audit(EMP_no INT NOT NULL,NAME TEXT NOT N原创 2021-08-13 16:48:24 · 61 阅读 · 0 评论 -
sql UNION 和order by同时使用
union就是将两个sql查询接口拼接起来1.使用场景:当查询相同的内容但是一个sql无法同时满足条件的情况下可以用union来连接两个sql然后对连接好的查询整体进行order by注意:两个sql 查询出的字段必须完全一致sql1 union sql2 order by [查询结果的公共字段]union前后的每一个sql可以分别加where查询条件互不影响且起作用2.使用过程中遇到的坑(1)报错:Incorrect usage of UNION and ORDER BY。原创 2021-08-06 20:51:05 · 6323 阅读 · 0 评论 -
mysql插入数据,数据已经存在则忽略
解:# mysql中常用的三种插入数据的语句:# insert into表示插入数据,数据库会检查主键,如果出现重复会报错;# replace into表示插入替换数据,需求表中有PrimaryKey,# 或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;# insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;insert ignore into actor values("3"...原创 2021-08-12 20:03:15 · 3116 阅读 · 0 评论 -
牛客SQL 对所有员工的薪水按照salary降序进行1-N的排名
描述有一个薪水表salaries简况如下:对所有员工的薪水按照salary降序进行1-N的排名,要求相同salary并列且按照emp_no升序排列:解:select s1.emp_no,s1.salary, #对于外层s1的每一个salary内层s2的所有salary与之比较,利用count函数可取到每个s1的salary的排名 (select COUNT(DISTINCT s2.salary) from salaries as s2 ...原创 2021-07-20 11:23:49 · 581 阅读 · 0 评论 -
牛客SQL 查找在职员工自入职以来的薪水涨幅情况
有一个员工表employees简况如下:有一个薪水表salaries简况如下:请你查找在职员工自入职以来的薪水涨幅情况,给出在职员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序,以上例子输出为(注: to_date为薪资调整某个结束日期,或者为离职日期,to_date='9999-01-01'时,表示依然在职,无后续调整记录)解:select s1.emp_no,(s1.salary-e1.salary) as growthfrom原创 2021-07-20 10:34:22 · 196 阅读 · 0 评论