SQL语句有关知识:

数据库是以表为组织单位存储数据的。

字段属性:

1. NOT NULL:不为空

2. AUTO_INCREMENT:自动增长

3. PRIMARY KEY:主键(不能重复且不能为空,唯一)

4. UNIQUE KEY:唯一键

5. DEFAULT '默认值':在没有插入数据时自动的默认值

6. COMMENT '字段注释':解释说明

注释:

1.两个‘-’加一个空格,空格后面即为注释内容

-- 注释内容

2.‘#’后面为注释内容

#注释

3./*注释*/

具体操作:

1. 数据库的操作

-- 列出所有数据库

SHOW DATABASES;

-- 创建数据库

CREATE DATABASE java_base DEFAULT CHARACTER SET utf8; # 设置一个名字为java_base的数据库,编码格式为utf8

-- 删除数据库

DROP DATABASE java_base; # 删除一个名为java_base的数据库

-- 切换数据库

USE java_base; # 切换到名为java_base的数据库

2. 数据库中表的操作

-- 创建表

CREATE TABLE java_table( # 创建一个名为java_table的表

        `id` INT,                # 表中包括一个int类型的属性id,一个char类型的属性name

        `name` CHAR(15), # 属性名可以加反引号`,也可以不加

);

-- 查看所有表

SHOW TABLES;

-- 查看表的结构

DESC java_table;# 查看名为java_table的表的结构

-- 删除表

DROP TABLE java_table # 删除名为java_table的表

2.1 ALTER操作

-- 添加字段

ALTER TABLE java_table ADD COLUMN  class_name CHAR(10);# 添加字段class_name

-- 删除字段

ALTER TABLE java_table DROP COLIMN class_name;# 删除名为class_name的字段

-- 修改字段

ALTER TABLE java_table CHANGE class_name class_n CHAR(20);

# 修改成字段名为class_n 类型为占30的char类型

-- 修改表名

ALTER TABLE java_table RENAME TO jt;

2.2 INSERT操作

INSERT INTO java_table(`id`, `name`) VALUES(1, 'java1');

# 添加一条记录:id为1, name为java1。char类型用英文单引号'括起来

INSERT INTO java_table(`id`, `name`) VALUES(2, 'java2'), (3, 'java3');

# 添加多条记录:id为2,name为java2;id为3,name为java3。中间用英文逗号,隔开

INSERT INTO java_table(`name`) VALUES('java4');

#添加部分数据时,必须要写清楚要添加的属性名。添加一条记录:name为java4

INSERT INTO java_table VALUES(5, 'java5');

#添加全部数据时,属性名可以不写。添加一条记录:id为5, name为java5

2.3 UPDATE操作

UPDATE java_table SET `name` = 'update' WHERE id = 5;

# 将java_table表中id为5的name更新为‘update’

2.4 DELETE操作

DELETE FROM java_table;# 删除java_table表的所有数据

DELETE FROM java_table WHERE id = 3;# 删除id为3的数据

###新增小知识:

TRUNCATE TABLE java_table;

#删除表里面的所有数据,但与delete不同的是,自增的id会重写初始化为初始值

###

2.5 SELECT操作

SELECT * FROM java_table; #显示来自表java_table的所有列(字段)数据

SELECT id,`name` AS '名称' FROM java_table;

# 查询时候添加常量列,通过as可以起别名

SELECT id,`name`,(java_score1+java_score2) AS '总成绩' FROM java_table;

# 查询时候和并列,字段名可以当成java里面的变量来运算

SELECT DISTINCT `name` FROM java_table;

# 查询时候去掉重复的记录

 ########################################################

 SELECT条件查询(不举例)

-- WHERE条件查询

-- 逻辑条件:AND(同时成立)        OR(一个成立即可)

-- 比较运算:>        <        >=        <=        !=

-- BETWEEN AND  (等价于 >= AND <= )

-- IN (表示在什么范围内,可以是:id IN (1, 2), 也可以是:id IN (SELECT id FROM java_table WHERE `name` = 'java1'))

-- 聚合查询函数:SUM(), AVG(), MAX(), MIN(), COUNT()

#注:COUNT()是指不包含NULL的列数据个数

-- 排序查询:ORDER BY        ASC/DESC        

#注:默认是升序ASC

-- 分组查询:GROUP BY        与        HAVING

#########################################################

约束:

-- 设置主外键约束

ALTER TABLE 外键表名 ADD CONSTRAINT 约束名称 FOREIGN KEY (外键字段) REFERENCES 主键表名(约束列名)

ALTER TABLE b_table ADD CONSTRAINT a_b_ids FOREIGN KEY(b_id) REFERENCES a_able(a_id)

 # 如果是在创建表的时候添加约束,只需要加上:FOREIGN KEY (外键字段) REFERENCES 主键表名(约束列名)