MYSQL考点复习(2017-2018)

1.    启动服务:net start mysql

2.    登录用户 mysql –u root –p

3.    修改密码 :use mysql

Update user setpassword=password(‘新的密码’) where user=’用户名’;

Flush privileges;刷新权限

4.    创建用户:create user'newuserzhou'@'host' identified by'123456';

Flush privileges; 刷新权限

5.    创建新的数据库:create database 数据库名;

6.    将数据库的所有权限授给用户:grant all privileges on 数据库名.* to 用户名@localhost identified by '密码';

Flush privileges; 刷新权限

7.    查看帮助菜单:help;或\h;

8.    查看数据库:show database;

9.    创建表:create table 表明(字段名 类型 [主键primary key,是否为空not null],xxxx);

10.  添加外键:foreign key(字段) reference 表(字段)

11.  级联删除foreign key(字段) reference 表(字段) on delete cascade;

12.  往表中添加字段:alter table 表 add 字段名 类型;

13.  改变字段类型:alter table 表 modify column 字段名 新类型;

14.  删除字段:alter table 表 drop 字段名;

15.  添加数据:insert into 表(字段1,字段2……)values(‘xxx’,’xxxx’,……),(‘数据2’,’xxx’…..);

16.  更新表(修改表):update 表名 set xxxx where xxxxx;

Mysql的数据表达式

1.    计算数字表达式:select 数学表达式(可以多个,用逗号隔开);

(例如:select 194*142;)计算乘积

2.    select语句 (\n表示回车)

3.    获得现在使用的mysql版本:select @@version;

4.    获得系统当前时间: select sysdate(); (有年月日)或selectnow();

5.    获得当前时间:select current_time;(无年月日)

6.    比较appleApple是否相等 select ‘apple’=’Apple’;

7.    返回一组数字中的最大值:select greatest(xx,xx,xx);

8.    返回一组数字中的最小值:select least(xx,xx,xx);

9.    返回平方根:select sqrt (数字);

10.  返回字母AASCII码值select ASCII(‘A’);

11.  K替换Welcom中的o字符 :  select replace(‘welcome’,’o’,’k’);

12.  得到201718号是2017年的第几周:select week(‘2017-01-08’);

13.  计算2008-01-2022天后日期是多少:selectdate_sub(‘2008-01-20’,interval -22 day);

14.  now()函数得到的系统时间进行格式化,得到17-09-14 这个日期。(date_format:select date_format(now(),’%y-%m-%d’);

 

查询数据库并创建相应视图

1.    查询表中的所有数据:select * from 表名;

2.    查询年龄在17-19岁之间的学生姓名及年龄:select Sname,Sage from Student where Sage>=17 andSage<=19;

3.    统计数据总数:Select count(*) from 表名;

4.    查询数据:select 字段名 from 表名 where 条件;

5.      查询所有姓“王”的学生的信息 select 字段名 from 表名 where sname like “王%”;

6.子查询:查询与“李勇”在同一个系的学生的姓名和所在系

Select sname,sdept fromstudent where sdept in(select sdept from student where sname=”李勇”);

6. 连接查询:查询选修了 3 号课程且成绩在 85分以上的学生的学号、姓名。 Select sno,sname from student joinsc on Suden.Sno=sc.Sno where sc.cno=”3” && sc.grade>85;

7. Distinct 去除相同的数据

8. Group by分组查找:查找student 中男生和女生的人数 :select count(ssex) from studentgroup by ssex;

9. Order by 顺序DESC:降序排列

ASC :升序

查询学生学号及其成绩,结果按降序排列

Select sno,grade from sc order by grade desc;

10. 创建数据库上的视图:create view 视图名 AS

Select 字段名 from 表名;

11. 查看视图中的数据:select 字段 from视图名 where 条件;

12. 在视图中插入数据:insert into 视图名 values(数据);

13. 修改视图数据:update 视图名 set 修改内容 where 条件;

14. 删除视图数据:delete from 视图名where 条件;

15. 删除视图:drop view 视图名;

 

编辑数据库

1. 字段说明:比如sno叫“学生编号”

Sno varchar(10) comment ‘学生编号’;

2. 字段改名:alter table 表名change 旧字段名 新字段名 类型 [是否为空];

3. 按字段1升序,字段2降序建立索引:create index 索引名 on 表名(字段 ASC,字段2 DESC);

4. 删除索引:drop index 索引名 on 表名;

5. 修改表名:alter table 旧表名rename 新表名;

6. 选择平均成绩:select avg(成绩);

7. 选择总和成绩:select sum(成绩);

8. 联合查询注意:select 表1.字段名,表2.字段名 from 表1,表2 where 条件;

9. 成绩为空:score is null

10.   limit 范围语句:select 字段名 from 表名 limit ?,?;

 注:第一个问号是开始查询的位置(不包括),第二个问号是结束查询的位置(包括)。例如:limit 2,5 查询从第三个学生到第五个的信息。

11.   字段另命名:select 字段 as ‘显示内容’ from 表 where 条件;

 

索引的创建和使用

1. 修改结束符:delimiter 新结束符

2. 创建一个插入十万条数据的函数

3. 创建一个聚簇索引 并且升序存放
CREATE CLUSTERED INDEX fact_idx 
    ON Salary (fact ); 

 

存储过程(delimiter $$)

1. 创建存储过程(以显示学生数量为例)

CREATE PROCEDURE TEST(OUT number1 INTEGER)BEGIN

DECLARE number2 INTEGER;

SET number2=(SELECT COUNT(*) FROM student);

SET number1=number2;

END $$

CALL TEST(@number1)$$

SELECT @number1$$

2. 声明输入 : in sno1 varchar(9)

输出 : out cp integer

      比较: if sage1>sage2 then set cp=0;

               else setcp=1;

               end if;

       输入时的调用:CALL 过程名(’96001’);

        输出:CALL 名(@cp);

3. 游标 declare yb_1 cursor for select ……

      open yb_1;

     fetch yb_1 into a1;

     set str……

     close yb_1;

     end$$

4. 删除存储过程:drop procedure test$$

触发器

1. 创建:CREATE TRIGGER 名<after|before>

<insert|update|delete(replace)>on 表名 for each row

begin

  

end$$

2. begin end 里的语句

1)   删除:deletefrom score where sno=old.sno;

替换:repalce into course1 select * from course;

更新:update 表名 set 字段=新字段;

       2)是否低于问题

           ifnew.income<4000 then set nw.income=4000;

          end if;

       3)更新总成绩(添加和删除数据)

       declare newscorechar(10);

       select sum(score) intonewscore from score where sno=’96001’;

       update sum_scoreset sumscore=new score;

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PP_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值