MYSQL基础知识

1.数据库服务启动与关闭(以管理员的身份运行黑窗口):

启动: net start mysql
关闭: net stop mysql

2.数据库连接(黑窗口) :

明文:   mysql  -u用户名  -p密码

密文:   mysql  -u用户名  -p  回车  密码

远程:   mysql  -h地址  -u用户名 -p 回车  密码

注意:-u和用户名之间可以有空格 但是-p和密码之间不能有空格

3.关于数据库的操作

3.1创建数据库:

CREATE  DATABASE  数据库名;

3.2判断数据库是否已经存在,不存在则创建数据库

CREATE  DATABASE  IF  NOT  EXISTS  数据库名;

3.3创建数据库并指定字符集

CREATE  DATABASE  数据库名 CHARACTER  SET  字符集;

可以吧3.2与3.3结合起来:

CREATE  DATABASE  IF  NOT  EXISTS  数据库名  CHARACTER  SET  字符集; 

3.4 查看所有的数据库

SHOW  DATABASES;

3.5查看某个数据库的定义信息

SHOW  CREATE  DATABASE  数据库名;

3.6修改数据库默认的字符集

ALTER  DATABASE  数据库名 DEFAULT  CHARACTER  SET  字符集;

3.7删除数据库

DROP  DATABASE  数据库名;

3.8查看正在使用的数据库

SELECT  DATABASE();

3.9使用/切换数据库

USE  数据库名;

4.关于表的操作

4.1创建表的格式 [约束可以不用写]:
CREATE  TABLE  表名 (
字段名 1  字段类型 1  约束1,
字段名 2  字段类型 2  约束2
);

4.2查看某个数据库中的所有表

SHOW  TABLES;

4.3查看表结构

DESC  表名;

4.4查看创建表的 SQL 语句

SHOW  CREATE  TABLE  表名;

4.5快速创建一个表结构相同的表

CREATE  TABLE  表名1  LIKE  表名2;
?  创建 2 表,2 表结构和 1 表结构相同

4.6直接删除表
DROP TABLE 表名;

4.7判断表是否存在,如果存在则删除表

DROP  TABLE  IF  EXISTS  表名;

4.8修改表名


RENAME  TABLE  表名 TO  新表名;

4.9修改字符集


ALTER  TABLE  表名 character  set  字符集;

4.10添加表列

ALTER  TABLE  表名 ADD  列名  类型 约束;

4.11修改列类型

ALTER  TABLE  表名 MODIFY  列名  新的类型;

4.12修改列名

ALTER  TABLE  表名 CHANGE  旧列名  新列名  类型;

4.13删除列

ALTER  TABLE  表名 DROP  列名;

5.关于表中数据的操作:

5.1插入数据
根据字段插入数据
INSERT  INTO  表名 ( 字段名 1,  字段名 2, …)  VALUES  (值 1, 值 2,…);
假如所有字段都插入数据 可以略写为(省略字段名):
INSERT  INTO  表名 VALUES (值1, 值2, 值3…);

批量添加:
INSERT  INTO 表名 ( 字段名 1, 字段名 2)  VALUES  (值 1, 值 2),(值 1, 值 2);

5.2更新表记录

UPDATE  表名 SET  列名= 值 [WHERE  条件表达式]
不带条件修改数据
UPDATE  表名 SET  字段名= 值;    --  修改所有的行
带条件修改数据
UPDATE  表名 SET  字段名= 值 WHERE  字段名= 值;

5.3删除表记录(如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。)

DELETE  FROM  表名 [WHERE  条件表达式]
不带条件删除数据
DELETE  FROM  表名;
带条件删除数据
DELETE  FROM  表名  WHERE  字段名= 值;

5.4使用 truncate 删除表中所有记录

TRUNCATE  TABLE  表名;

truncate 和 delete 的区别:truncate 相当于删除表的结构,再创建一张表。

6.查询数据

6.1查询指定字段
SELECT  字段名 1,  字段名 2,  字段名 3, ... FROM  表名;
若是查询所有字段,可简写为:
SELECT  *  FROM  表名;

6.2使用别名(AS可以省略)

SELECT  字段1  AS 别名,  字段2  AS  别名... FROM  表名 AS  表别名;
SELECT  字段1  别名,  字段2  别名... FROM  表名 表别名;

6.3查询指定列并且去重

SELECT  DISTINCT  字段名  FROM  表名;

6.4查询结果参与运算

SELECT  列名1 +  固定值  FROM  表名;
SELECT  列名1 +  列名2  FROM  表名;

6.5条件查询的语法

SELECT  字段名 FROM  表名 WHERE  条件;

6.6 like 关键字 表示模糊查询

SELECT  *  FROM  表名 WHERE  字段名  LIKE  '通配符字符串'; 

6.7 排序

select  *  from  表名  order  by  列名  asc(升序,默认) / desc (降序);

6.8聚合函数

6.8.1统计函数count()  统计指定字段不为空的记录行数
select  count(列名)  from  表名

6.8.2求和函数sum() 对指定记录中的某个字段进行求和

select  sum(列名)  from  表名;

6.8.3最值函数max()/min() 对指定记录中的某个字段进行求最值

select  max(列名)  from  表名;

6.8.4平均值函数avg() 对指定记录中的某个字段进行求平均值

select  avg(列名)  from  表名;

6.8 分组查询(必须跟随聚合函数)

select  count(*)  from  表名  group  by  列名;

6.8.1. where 和 having 的区别?

1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。

6.9 分页查询

1. 语法:limit 开始的索引,每页查询的条数; 
SELECT  *  FROM  表名  LIMIT  0 , 3;
2.公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数 -- 每页显示3条记录

7.约束:

7.1 主键约束:primary  key
1.在创建表时,添加主键约束
		create  table  stu(
			Id  int  primary  key,-- 给id添加主键约束
			name  varchar(20)
		);
  1. 删除主键(不能用modify以修改的方式删除主键)

       ALTER  TABLE  表名  DROP  PRIMARY  KEY;
    
  2. 创建完表后,添加主键

   ALTER  TABLE  表名 MODIFY  id  INT  PRIMARY  KEY;

4.自动增长:

1. 在创建表时,添加主键约束,并且完成主键自增长
	create  table  stu(
		id  int  primary  key  auto_increment,-- 给id添加主键约束
		name  varchar(20)
	);

2.删除自动增长

ALTER  TABLE 表名 MODIFY  id  INT; 

3.添加自动增长

ALTER  TABLE 表名 MODIFY  id  INT  AUTO_INCREMENT;

7.2非空约束
1.创建表时添加约束

	CREATE  TABLE  stu(
		Id  INT,
		NAME  VARCHAR(20)  NOT  NULL -- name为非空
	);

2. 创建表完后,添加非空约束
	ALTER  TABLE 表名 MODIFY  字段名  类型  NOT  NULL;

3. 删除字段的非空约束
	ALTER  TABLE 表名 MODIFY  字段名  类型;

7.3唯一约束

1. 在创建表时,添加唯一约束
		CREATE TABLE stu(
			Id  INT,
			phone_number  VARCHAR(20)  UNIQUE -- 手机号
		);
  1. 删除唯一约束

ALTER TABLE 表名 DROP INDEX 字段名;

  1. 在表创建完后,添加唯一约束

    ALTER TABLE 表名 MODIFY 字段名 类型 UNIQUE;

7.4外键约束

1. 在创建表时,可以添加外键
			create table 表名(
		....
		外键列,
		constraint 外键名称 foreign  key (外键列名称) referecnes 主表名称(主表列名称)
	);
  • 删除外键
   ALTER  TABLE 表名 DROP  FOREIGN  KEY 外键名称;
   ```

4. 创建表之后,添加外键
   ALTER  TABLE 表名 ADD  CONSTRAINT 外键名称 FOREIGN  KEY (外键字段名称)  REFERENCES 主表名称(主表列名称);

添加级联操作 (更新级联和删除级联)

ALTER  TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN  KEY (外键字	段名称)  REFERENCES 主表名称(主表列名称)  ON  UPDATE  CASCADE  	ON  DELETE CASCADE ; 
2.分类: 
a.级联更新:ON UPDATE CASCADE 
b.级联删除:ON DELETE CASCADE

你可能感兴趣的:(MYSQL基础知识)