MySQL

作者: 张威先森 | 来源:发表于2018-09-18 10:17 被阅读0次

    % 将两个表纵向连接 就如同两个集合重叠一样
    如:
    select * from userinfo
    union all
    select * from userinfo

    查看引擎
    show engines
    InnoDB MyISAM

    分页
    limit

    1.MySQL查看表结构的SQL命令是什么
    SELECT COLUMN_NAME, COLUMN_TYPE,COLUMN_COMMENT
    FROM information_schema.COLUMNS
    WHERE TABLE_NAME = 'xxx';

    2.Mysql中的分组函数有哪些,功能是什么
    max() 求一组数据的最大值
    min()求一组数据的最小值
    sum()求一组数据的总和(只能对数值类型的列或表达式操作)
    avg()求一组数据的平均值(只能对数值类型的列或表达式操作)
    count() 求一组数据的记录数
    统计数/记录数 除了count(*)之外,其他所有分组函数都会忽略列中的空值进行计算

    3.结束事务的SQL命令是什么
    commit提交事务
    rollback回滚事务

    4.使用SQL语句删除表中存在的列
    alter table table_name
    drop colunm_name

    5.查询比SMITH薪资高的员工有哪些
    select *
    from emp
    where sal>(select sal from emp where ename='SMITH')

    6.在视图上可以完成那些操作
    DQL DDL DML
    在定义视图的子查询中包含分组函数,group by子句和distinct关键字,则不能对视图进行
    增删改操作。

    7.SQL语句中的限制条件用那个关键字表示
    where

    8.查询奖金不为空的员工信息
    select *
    from emp
    where comm is not null

    9.查询每个部门不同工作的最高工资( )
    select max(sal)
    from emp
    group by deptno
    10.使用SQL命令删除(撤销)数据库中已经存在的表
    drop table 表名

    11.将工资低于2000元或者低于平均工资的员工的工资上调20%
    update table emp
    set sal=sal*1.2
    where sal<2000 or sal<(select avg(sal) from emp)

    12.返回当前日期的函数是什么
    Now()
    curtime() curdate()

    13.请说明TRUNCATE和DELETE的区别是什么
    TRUNCATE是DDL,只能删除表中所有的,并且释放表存储空间,不能回滚

    DELETE是DML,可以删除指定记录,不会释放表存储空间,可以使用ROLLBACK回滚

    14.从GROUP BY分组的结果集中再次进行条件限制的子句是什么
    Having

    15.说明哪种情况下Mysql会自动创建唯一性索引
    对于主键会自动创建唯一性索引(Primary Key)

    16.使用SQL命令删除视图
    drop view 视图名

    17.查询EMP中名字中有’A’的员工?
    select *
    from emp
    where ename like '%A%'

    18.查询员工姓名和工作地点,没有员工的部门也要显示出来
    select ename,loc,deptno
    from emp e RIGHT JOIN dept d
    on e.deptno=d.deptno

    19.说明主键约束的作用
    主键约束是唯一性约束和非空约束的组合,添加了主键约束的列中,
    不能存在重复数据,也不能为空。主键是每一条记录的标识,保证记录的完整性。

    20.有三个表,它们的记录行数分别是10行、2行和6行,
    三个表进行交叉连接后,会查询出多少条记录
    交叉连接会产生笛卡尔积,结果为120行记录

    21.查询员工编号,薪资和部门号,按照姓名升序排列
    select empno,sal,deptno
    from emp
    order by ename asc

    select *
    from emp
    where deptno in (10,20)

    23.统计EMP表每个部门中人数
    select count(empno)
    from emp
    group by deptno

    24.使用SQL语句实现删除用户的语句是
    (创建新用户 create user '用户名'@'localhost'
    identified by '密码'
    grand all privileges on. to'用户名'@'localhost'
    flush privileges)
    drop user 用户名@localhost

    25.使用Like进行匹配查询时,需要使用的通配符是什么,表示什么含义
    % 表示任意个字符
    _表示一个字符

    26..当某字段(列)要使用AUTO_INCREMENT的属性时,该字段必须是什么类型的数据
    int类型

    Mysql在V5.1之前默认存储引擎是MyISAM;在此之后默认存储引擎是InnoDB
    用show ENGINES 来查看引擎
    28.在子查询中使用的多行运算符有那些
    in any all

    29.给student表增加一列默认值为0的scores列的sql语句
    alter table student
    add (scores int(5) default 0)

    30.什么是事务的及事务的四个特性
    事务是一组SQL语句的组合单元(包含DML语句),一组事务只能全部执行成功或者全部执行失败,不能出现部分成功或者部分失败的情况。
    数据库通过事务保证数据的完整性和一致性

    ACID:
    A原子性,一致性,隔离性,持久性
    原子性:组成事务的DML操作语句要么全成功,要么全失败,不可能出现部分成功或失败的情况
    C一致性:一旦事务完成,不管是成功还是失败,真个系统处于数据一致的状态
    I隔离性:一个事务的执行,不会被另外一个事务干扰
    D持久性:事务一旦提交,对数据的改变就是永久的,不可以再 被回滚
    31.用于事务提交的SQL语句是
    commit

    32.说明Select语句的执行查询
    from where group by having select order by limit

    33.什么是索引 创建索引的方式
    索引是一种特殊的数据库结构,使用索引可以有效的提高数据的查询效率,增强数据库性能

    1.建表时对列添加索引
    2.建表追加索引

    34.使用SQL语句创建neuedu数据库
    create database if not exists neuedu

    35.使用SQL语句 ,创建学生表(student)
    学号sid 主键,姓名sname 唯一键 非空,性别sex,年龄age

    create table student(
    sid int(10) primary key,
    sname varchar(20) unique not null,
    sex varchar(5),
    age int(5)
    )

    36.使用SQL语句 ,创建课程表(course) ,编号cno 主键,
    课程名称cname 唯一键 非空
    create table course(
    cno varchar(10) primary key,
    cname varchar(20) unique not null
    )

    37.使用SQL语句,创建成绩表(scores) scid 主键, 学号sn 非空,
    课程编号cn,成绩 score 非空
    create table scores(
    sid varchar(20) primary key,
    sn int(20) not null,
    cn varchar(20) ,
    score int(10) not null
    )
    38.插入数据
    insert into student
    values (101,'王龙','男',18)

    insert into course
    values('c01','Java')

    intsert into scores
    valuse('s01',101,'c01',95)

    39.查询出每个学生平均分是多少
    select avg(score)
    from scores
    group by sn

    40.查询每个学生的姓名和总分
    select sname,sum(score)
    from student s,score sc
    where s.sid=sc.scid
    group by sc.sn,sname

    41.查询有那些学生选修了Java课程
    select sn
    from scores
    where cn=(select cno from course where cname='Java')

    相关文章

      网友评论

          本文标题:MySQL

          本文链接:https://www.haomeiwen.com/subject/pvuynftx.html