数据库学习(MySQL)一:表

创建表

USE t_table;

CREATE TABLE t_student;

表的约束(针对于某一列)

  1. 非空约束:NOT NULL,不允许某一列的内容为空;
  2. 设置列的默认值:DEFAULT;
  3. 唯一约束:UNIQUE,在该表中,该列内容必须唯一;
  4. 主键约束:PRIMARY KEY,非空且唯一;
  5. 主键自增长:AUTO_ INCREMENT。从1开始,步长为1;
  6. 外键约束:FOREIGN KEY,A表中的外键列,A表中的外键列的值必须参照与B表中的某一列(B表主键)。

主键设计

  1. 单字段主键,单列作为主键;(建议)
  2. 复合主键,使用多列充当主键;
  3. 主键分为两种:
    1. 自然主键:使用有业务含义的列作为主键;
    2. 代理主键:使用没有业务含义的列作为主键。(建议)

DML操作

DML操作都会返回受影响的行数,这次成功操作几条数据

插入语句(一次操作只插入一行)

INSERT INTO 表名(列名1,列名2……)VALUES (值1,值2……);

1.插入完整数据记录
INSERT INTO t_student (id,name,email,age) VALUES (14,'BMY','bmy@',19)
2.插入数据记录一部分
INSERT INTO t_student (name,email,age) VALUES ('DANS','bmy@',19)
INSERT INTO t_student (name,age) VALUES ('TIMI',19)
3.插入多条数据记录
INSERT INTO t_student (name,email,age) VALUES ('A','a@',19),('B','b@',20),('C','c@',25)
4.插入查询结果(测试)
INSERT INTO t_student (name) SELECT name FROM t_student

更新语句

UPDATE 表名 SET 列名1 = 值1,列名2 = 值2…… WHERE[条件]

如果没有WHERE,则修改全表

修改TIMI的名字为LIKE
UPDATE t_student SET name = 'LIKE' WHERE id = 12
修改id为0的学生,名字改为Bobbui,年龄改为19,邮箱改为Bobbui@
UPDATE t_student SET name = 'Bobbui',age = 19,email = 'Bobbui@' WHERE id = 0

删除语句

DELETE FROM t_student WHERE[条件]

简单查询

SELECT 列名1,列名2……

FROM 表名

WHERE 条件

执行顺序:
1.先执行FROM
2.接着执行WHERE,过滤
3.再执行SELECT
表示查询整张表
SELECT * FROM 表名;   
去重
SELECT DISTINCT 列名1,列名2…… FROM 表名;

需求:查询所有货品的id,名称和批发价(批发价=卖价*折扣)
SELECT id,productName,slaePrice,cutoff,salePrice * cutOff FROM product
需求:查询所有货品的id,名称,和各进50个的成本价(成本=costPrice)
SELECT id,productName,costPrice * 50 FROM product
需求:查询所有货品的id,名称,各进50个,并且每个运费1元的成本
SELECT id,productName,(costPrice + 1) * 50 FROM product

设置列名的别名

  1. 改变列的标题头;
  2. 用于表示计算结果的含义;
  3. 作为列的别名;
  4. 如果别名中使用特殊字符或者强制大小写敏感,或者有空格时,都必须加单引号
需求:查询所有货品的id,名称,各进50个,并且每个运费1元的成本
SELECT id AS 货品ID,productName,(costPrice + 1) * 50 FROM product

或者:
SELECT id 货品ID,productName,(costPrice + 1) * 50 FROM product

设置显示格式

SELECT CONCAT(列名1,‘要加的内容’,列名2)FROM 表


过滤查询

比较和逻辑运算符

比较没什么说的,和Java中一样

逻辑运算符:也和Java一样

AND(&&)

OR(||)

NOT(!)

优先级:括号最大

(NOT productName LIKE ‘%M%’ AND salePrice > 100) OR (dir_id = 2)

范围查询

BETWEEN:必须存在一个区间

需求1:选择id,货品名称,零售价在300~400之间的货品

SELECT id,productName,salePrice FROM product
WHERE salePrice >= 300 AND salePrice<=400

或者:
SELECT id,productName,salePrice FROM product
WHERE salePrice BETWEEN 300 AND 400

需求2:选择id,货品名称,零售价不在在300~400之间的货品
SELECT id,productName,salePrice FROM product
WHERE NOT (salePrice >= 300 AND salePrice<=400)

或者:
SELECT id,productName,salePrice FROM product
WHERE salePrice NOT BETWEEN 300 AND 400

IN:选定所选区间,如(2,4)

IS NULL:判断是否为空(不用=)

LIKE:模糊查询

LIKE利用通配符进行模糊查询:

  • “_”:必须占据一个字符,任意字符;
  • “%”:可以占据0~N个字符,任意字符

比较简单,没什么写的

发布了40 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42650988/article/details/88250863