mysql基本数据类型、笔试题(2018-9-10)

net start mysql 
mysql -u root -p
SHOW DATABASES; //
CREATE DATABASE  sxytest; 
USE sxytest;

SHOW TABLES; //

CREATE TABLE sxytmp1(
x TINYINT,
y SMALLINT
z MEDIUMINT,
m INT,
n BIGINT
);


DESC sxytmp1;//用DESC查看表结构,desc降序

这里写图片描述

小结:tinyint(4)里面的4表示4比特,也就是1个字节。

可以看到,TINGINT占1个字节,SMALLINT占2个字节,MEDIUMINT占3个字节,INT占4个字节,BIGINT占8个字节


1.电话 十一位 字符型

2.性别 tiny用0和1来表示 男/女 不建议使用枚举

3.年龄 根据业务来看 , 仅用于展示用varchar, 若要求平均年龄用int(可以加限定范围大于0小于150)


MySQL数据库的基本数据类型 https://www.cnblogs.com/doctorJoe/p/5337510.html


sql中定义年龄用什么数据类型,长度为多少?https://zhidao.baidu.com/question/154265715.html

char(3) 小于10位且长度基本固定的字符串最好用char,而不要使用varchar,因为varchar虽然是长度可控制,但是他需要有额外的空间记录varchar的长度变量,在10以内占用空间比char大,而且年龄基本上集中在2位数之内,长度基本固定,所以用char较好。
int占用4个字节,比char(3)占用空间大。
另外可以尝试使用tinyint类型,只占用1个字节,范围0~255,我想应该没有人活到256岁的吧。


TEST

1.SQL 指的是?

2.哪个 SQL 语句用于从数据库中提取数据?

3.哪条 SQL 语句用于更新数据库中的数据?

4.哪条 SQL 语句用于删除数据库中的数据?

5.哪条 SQL 语句用于在数据库中插入新的数据?

6.通过 SQL,您如何从 “Persons” 表中选取 “FirstName” 列?

7.通过 SQL,您如何从 “Persons” 表中选取所有的列?

8.通过 SQL,您如何从 “Persons” 表中选取 “FirstName” 列的值等于”Peter” 的所有记录?

9.通过 SQL,您如何从 “Persons” 表中选取 “FirstName” 列的值以 “a” 开头的所有记录?

10.请判断下列说法是否正确:当所列出的某个条件为 true 时,OR 运算符会显示记录。当列出的所有条件为 true 时,AND 运算符会显示记录。

11.通过 SQL,您如何在表 Persons 中选择 FirstName 等于 Thomas 而 LastName 等于 Carter 的所有记录?

12.通过 SQL,您如何按字母顺序选取 Persons 表中 LastName 介于 Adams 和 Carter 的所有记录?

13.哪条 SQL 语句可返回唯一不同的值?

14.哪个 SQL 关键词用于对结果集进行排序?

15.通过 SQL,您如何根据 “FirstName” 列降序地从 “Persons” 表返回所有记录?

16.通过 SQL,您如何向 “Persons” 表插入新的记录?

17.通过 SQL,您如何向 “Persons” 表中的 “LastName” 列插入 “Wilson” ?

18.您如何把 “Persons” 表中 “LastName” 列的 “Gates” 改为 “Wilson” ?

19.通过 SQL,您如何在 “Persons” 表中删除 “FirstName” 等于 “Fred” 的纪录?

20.通过 SQL,您如何返回 “Persons” 表中记录的数目?


1.SQL 指的是?
Structured Query Language

2.哪个 SQL 语句用于从数据库中提取数据?
SELECT

3.哪条 SQL 语句用于更新数据库中的数据?
UPDATE

4.哪条 SQL 语句用于删除数据库中的数据?
DELETE

5.哪条 SQL 语句用于在数据库中插入新的数据?
INSERT INTO

6.通过 SQL,您如何从 “Persons” 表中选取 “FirstName” 列?
SELECT FirstName FROM Persons ;

7.通过 SQL,您如何从 “Persons” 表中选取所有的列?
SELECT *FROM Persons;

8.通过 SQL,您如何从 “Persons” 表中选取 “FirstName” 列的值等于”Peter” 的所有记录?
SELECT * FROM Persons WHERE FirstName=’Peter’;

9.通过 SQL,您如何从 “Persons” 表中选取 “FirstName” 列的值以 “a” 开头的所有记录?
SELECT * FROM Persons WHERE FirstName LIKE ‘a%’;

10.请判断下列说法是否正确:当所列出的某个条件为 true 时,OR 运算符会显示记录。当列出的所有条件为 true 时,AND 运算符会显示记录。(true)

11.通过 SQL,您如何在表 Persons 中选择 FirstName 等于 Thomas 而 LastName 等于 Carter 的所有记录?
SELECT * FROM Persons WHERE Firstname=’Thomas’ AND Lastname= ‘Carter’;

12.通过 SQL,您如何按字母顺序选取 Persons 表中 LastName 介于 Adams 和 Carter 的所有记录?
SELECT * FROM Persons WHERE LastName BETWEEN ‘Adamas’ AND ‘Carter’;

13.哪条 SQL 语句可返回唯一不同的值?
SELECT DISTINCT;

14.哪个 SQL 关键词用于对结果集进行排序?
ORDER BY

15.通过 SQL,您如何根据 “FirstName” 列降序地从 “Persons” 表返回所有记录?
SELECT * FROM Persons ORDER BY FirstName DESC;

16.通过 SQL,您如何向 “Persons” 表插入新的记录?
INSERT INTO Persons VALUES (‘Jimmy’, ‘Jackson’);

17.通过 SQL,您如何向 “Persons” 表中的 “LastName” 列插入 “Wilson” ?
INSERT INTO Persons(LastName) VALUES (‘Wilson’);
//一定要记得加括号

18.您如何把 “Persons” 表中 “LastName” 列的 “Gates” 改为 “Wilson” ?
UPDATE Persons SET LastName=’Wilson’ WHERE LastName=’Gates’;

19.通过 SQL,您如何在 “Persons” 表中删除 “FirstName” 等于 “Fred” 的纪录?
DELETE FROM Perons WHERE FirstName=’Fred’;

20.通过 SQL,您如何返回 “Persons” 表中记录的数目?
SELECT COUNT(*) FROM Persons;


TABLE Orders
这里写图片描述

COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

SELECT COUNT(column_name) FROM table_name

COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

SELECT COUNT(DISTINCT column_name) FROM table_name

SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Carter'

SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders

数据库服务器名称与本计算机名称有什么区别?
https://zhidao.baidu.com/question/322292915.html
如果数据库是装在本机,就没区别,如果不是装在本机,就有区别,指的就是装数据库的那台电脑的名称。


MySQL中Decimal类型和Float Double等区别 https://www.cnblogs.com/xujishou/p/6307299.html


Auto-increment 会在新记录插入表中时生成一个唯一的数字。


IN 操作符
IN 操作符允许我们在 WHERE 子句中规定多个值。https://www.cnblogs.com/xujishou/p/6307299.html

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

例如

SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')

SQL数据库经典面试题(笔试题)https://blog.csdn.net/ljk168/article/details/79662078

4.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显示格式:
语文 数学 英语
及格 优秀 不及格

select (case when 语文>=80 then ‘优秀’
when 语文>=60 then ‘及格’ else ‘不及格’) as 语文, (case when 数学>=80 then ‘优秀’
when 数学>=60 then ‘及格’ else ‘不及格’) as 数学, (case when 英语>=80 then ‘优秀’
when 英语>=60 then ‘及格’ else ‘不及格’) as 英语, from table


SELECT DISTINCT name,
 (CASE
    WHEN chinese<60 THEN '不及格'
    WHEN chinese>=60 AND chinese<90 THEN '及格'
    WHEN chinese>=90  THEN '优秀'
    ELSE '其他'
 END) AS chinese,
 (CASE
    WHEN math<60 THEN '不及格'
    WHEN math>=60 AND chinese<90 THEN '及格'
    WHEN math>=90  THEN '优秀'
    ELSE '其他'
 END) AS math,
 (CASE
    WHEN eng<60 THEN '不及格'
    WHEN eng>=60 AND chinese<90 THEN '及格'
    WHEN eng>=90  THEN '优秀'
    ELSE '其他'
 END) AS eng
FROM S;

一个表中的id(字段)有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。

例如:

1.表记录(数据)
这里写图片描述

2.表结构
这里写图片描述

3.答案:

select id, Count(*) AS SUM from S group by id having count(*)>4;

mysql经典数据库面试题https://blog.csdn.net/eyyeyyeyy11/article/details/52084916

猜你喜欢

转载自blog.csdn.net/AriesTina/article/details/82586542