Ⅰ:视图
来源:牛客网
Ⅱ:DATEADD
DATEADD()
函数在日期中添加或减去指定的时间间隔。
语法
DATEADD(datepart,number,date)
-
datapart参数的取值范围是:
{yy/yyyy,qq/q,mm/m,dy/y,dd/d,wk/ww,dw/w,hh,mi/n,ss/s,ms,mcs,ns} -
number 是您希望添加的间隔数
-
date 参数是合法的日期表达式
来源:牛客网
Ⅲ:HAVING
SQL 查询语句中 WHERE 、 GROUP BY 、 HAVING 这些关键字区别和用法总结错误的是()
A. HAVING在查询语句中必须依赖于GROUP BY
B. WHERE子句用来限制SELECT语句从表中指定选取的行
C. GROUP BY子句用来分组WHERE子句的输出结果集
D. HAVING子句用来从分组的结果中筛选列
HAVING子句在分组时用来筛选行。
来源:牛客网
Ⅳ:关系数据库的数据存放形式
二维表:每一行对应一条记录,每一列对应(实体/关系)一项属性
Ⅴ:
A: *
多行,sum一行
B:stu_id多行,sum一行
C:正确的删除为delete from score 不需要加*
来源:牛客网
Ⅵ:mysql_num_fields()
mysql_num_fields() 函数返回结果集中字段的数。id name age
Ⅶ: join
自关联时。只需要一张表。
Ⅷ:数据库.表名
删除表首先得确定是哪个数据库的,drop table 数据库名.表名
或者先选定数据库后删除使用drop table 表名
。
Ⅸ:
if(条件exp,表达式1,表达式2)
如果(exp不等于0且exp不为空),条件成立(true)执行表达式1,否则,执行表达式2.
这里exp为值-1,条件成立执行表达式1,所以返回值为5。
来源:牛客网
Ⅹ:MYSQL用到的通讯协议
MySQL实现了四种通信协议:
TCP/IP协议,通常我们通过TCP协议来连接MySQL
Unix Socket协议,这个通常我们登入MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件,文件的存放位置在配置文件中有定义。
Share Memory协议,只有windows才可以用,使用这个协议需要在配置文件中在启动的时候使用–shared-memory参数,注意的是,使用此协议,一个host上只能有一个server,所以这个东西一般没啥用的。
Named Pipes协议,这个协议也是只有windows才可以用,Named Pipes 是为局域网而开发的协议。
来源:牛客网
十一:排他锁
共享锁【S锁】
又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
排他锁【X锁】
又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
来源:牛客网
十二:插入数据权限
grant select,insert on userdb.userinfo to 'zhangsan'@'localhost'
十三:原子性
原子性:事务是一个不可分割的整体,为了保证事务的总体目标,事务必须具有原子性,即当数据修改时,要么全执行,要么全不执行,即不允许事务部分的完成,避免了只执行这些操作的一部分而带来的错误。原子性要求事务必须被完整执行。
一致性:一个事务执行之前和之后,数据库数据必须要保持一致性状态。数据库的一致性状态应该满足模式锁指定的约束,那么在完整执行该事务后数据库仍然处于一致性的状态。为了维护所有数据的完整性,在关系型数据库中,所有规则必须应用到事务的修改上。数据库的一致性状态由用户来负责,由并发控制机制实现。例如银行转账,转账前后两个账户金额之和应保持不变。由此并发操作带来的数据不一致性包括丢失数据修改、读脏数据。不可重复读、产生‘幽灵’数据。
隔离性:隔离性也被成为独立性,当两个或多个事务并发执行时,为了保证数据的安全性,将一个事物内部的操作与事务的操作隔离起来,不被其他正在执行的事务看到。
持久性:持久性也被成为永久性,事务完成之后,DBMS保证它对数据库中的数据的修改是永久性的,当系统或介质发生故障时,该修改也永久保持。持久性一般通过数据库备份与恢复来保证。
来源:牛客网
十四:
以下哪一句从表TABLE_NAME中提取前10条记录?
A select * from TABLE_NAME where rowcount=10
B select TOP 10 * from TABLE_NAME
C select TOP of 10 * from TABLE_NAME
D select * from TABLE_NAME where rowcount<=10
Sql server: select TOP N * from table_name.
MySQL: select * from table_name limit 0,10;
Oracle: select * from table_name where rownum<=10
来源:牛客网
十五:通配符查找速度慢
假设身份证表中含有百万级的数据,其中身份证字段card_num上创建了唯一索引,且我们假设身份证全部由数字组成,要统计开头为100的身份证号码的数量,下面写法执行速度最慢的是 (A)
A select count() from card where card_num like ‘100%’ ’
B select count() from card where substr(card_num,1,3) = ‘100’
C select count(*) from card where card_num>=‘100’ and card_num < ‘100a’
D 一样快
SUBSTR函数是用来截取数据库某一列字段中的一部分。
SBUSTR(str,pos); 从pos开始的位置,一直截取到最后。
通配符查找最慢 %是个多字符通配符
来源:牛客网