MySql

3、配置

MySql服务启动

*MySQL服务启动

cmd–> services.msc打开服务的窗口

使用管理员权限打开cmd

net stop mysql 关闭MySQL服务

net start mysql 启动MySQL服务

*MySQL登录

1.mysql -uroot -p密码

2.mysql -hip -uroot -p连接目标的密码

3.mysql --host=ip --user=root --password=连接目标的密码

MySQL退出

1、exit

2、quit

MySQL安装目录

1、MySQL安装目录

​ *配置文件 my.ini

2、MySQL数据目录

​ *几个概念

​ *数据库:文件夹

​ *表:文件

​ *数据:

SQL

1、什么是SQL?

​ Structured Query Language:结构化查询语言

其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。

2、SQL通用语法

​ 1、SQL语句可以单行或多行书写,以分号结尾。

​ 2、可使用空格和缩进来增强语句的可读性。

​ 3、MySQL数据库的SQL语句不区分大小写,关键字建议使 用大写。

​ 4、3种注释

​ *单行注释:-- 注释内容或# 注释内容(MySQL特有) --后面必须有空格

​ *多行注释:/注释/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tHjQHCIo-1589872613780)(C:\Users\Sakura\AppData\Local\Temp\1589635270881.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2923fdHX-1589872613781)(C:\Users\Sakura\AppData\Local\Temp\1589635134030.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mGzWp9fC-1589872613783)(C:\Users\Sakura\AppData\Local\Temp\1589635341686.png)]

DDL:操作数据库、表

1、操作数据库:CRUD

1、C(Create):创建
	*创建数据库:
		*create database 数据库名称;
	*创建数据库,判断不存在,再创建:
		*create database if not exists 数据库名称;
	*创建数据库,并指定字符集
		**create database 数据库名称 character set 字符集名;
     *练习:创建db4数据库,判断是否存在,并制定字符集为gbk
         *create database if not exists db4 character set gbk;
2、R(Retrieve):查询
	*查询所有数据库的名称:
		*show databases;
	*查询某个数据库的字符集:查询某个数据库的创建语句
		*show create database 数据库名称;
3、U(Update):修改
	*修改数据库的字符集:
		*alter database 数据库名称 character set 字符集名称(utf8);
4、D(Delete):删除
	*删除数据库:
		*drop database 数据库名称;
	*判断数据库存在,存在再删除
		*drop database if exists 数据库名称;
5、使用数据库
	*查询当前正在使用的数据库名称
		*select database();
	*使用数据库
		*use 数据库名称;
		

  1. 操作表

    1. C(Create):创建
    	1. 语法:
    		create table 表名(
            	列名1 数值类型1,
                列名2 数值类型2,
                列名3 数值类型3,
                ...
                列名n 数值类型n
            );
            *注意:最后一列,不需要加逗号(,)
            *数据库类型:
            	1. int:整数类型
            		*age int
            	2. double:小数类型
            		*score double(5,2),
            	3. date:日期,只包含年月日,yyyy-MM-dd
            	4. datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
            	5. timestamp:时间戳类型 包含年月日时分秒 yyyy-MM-dd    HH:mm:ss
            		*如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
                 6. varchar:字符串
                 	*name varchar(20):姓名最大20个字符
                 	*zhangsan 8个字符 张三 2个字符
            *创建表
            	create table student(
    				id int,
                    name varchar(32),
                    age int,
                    score double(4,1),
                    birthday date,
                    insert_time timestamp
    			);
    		*复制表
    			*create table 表名 like 被复制的表名;
    2. R(Retrieve):查询
       	*查询某个数据库中所有的表名称
       		*show tables;
       	*查询表结构
       		*desc 表名;
    3. U(Update):修改(alter更改)
    	1. 修改表名
    		alter table 表名 rename to 新的表名;
    	2. 修改表的字符集
    		alter table 表名 character set 字符集名称;
    	3. 添加一列
    		alter table 表名 add 列名 数据类型;
    	4. 修改列名称 类型
    		alter table 表名 change 列名 新列名 新数据类型;
    		alter table 表名 modify 列名 新数据类型;
    	5. 删除列
    		alter table 表名 drop 列名;
    4. D(Delete):删除
    	*drop table 表名;
    	*drop table if exists 表名;
    
    

    *客户端图形化工具:SQLYog

DML

DML:增删改表中数据

1. 添加数据
	*语法:
		*insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
	*注意:
		1.列名和值要一一对应。
		2.如果表名后,不定义列名,则默认给所有列添加值
			insert into 表名 values(值1,值2,...值n);
		3.除了数字类型,其他类型需要使用引号(单双引号都行)引起来
2. 删除数据
	*语法:
		*delete from 表名 [where 条件]
	*注意:
		1.如果不加条件,则删除表中所有记录.
		2.如果要删除所有记录
			1.delete from 表名;-- 不推荐使用,有多少条记录就会执行多少次删除操作
			2.TRUNCATE TABLE 表名; # 推荐使用,效率更高 先删除表,然后在创建一张一样的表.
3. 修改数据
	*语法:
		*update 表名 set 列名1 = 值1, 列名2 = 值2,...[where 条件]
	*注意:
		1.如果不加任何条件,则会将表中所有记录全部修改.

DQL:查询表中的记录

* select * from 表名;
1.语法:
	select
		字段列表
	from
		表名列表
	where
		条件列表
	group by
		分组字段
	having
		分组之后的条件
	order by
		排序
	limit
		分页限定
		
2. 基础查询
	1.多个字段的查询
		select 字段名1,字段名2... from 表名;
		*注意:
			*如果查询所有字段,则可以使用*来替代字段列表。
		
	2.去除重复
		*distinct
	3.计算列
		*一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
		*ifnull(表达式1,表达式2):
			*表达式1:哪个字段需要判断是否为null
			*如果该字段为null后的替换值.
	4.起别名
		*as :as也可以省略
例如:
INSERT INTO student(id,NAME,age,sex,address,math,English,biological,physical) 
VALUES (1,'马云',55,'男','杭州',60,85,75,78),
(2,'绘梨衣',25,'女','东京',90,95,95,98),
(3,'路明泽',26,'男','杭州',80,85,65,82),
(4,'柳岩',20,'女','湖南',72,85,63,79),
(5,'胡歌',25,'男','陕西',88,89,95,96),
(6,'马化腾',45,'男','深圳',60,85,75,78),
(7,'刘德华',46,'男','香港',60,78,75,78),
(8,'黎明',43,'男','香港  ',60,80,70,78);

SELECT *FROM student;

-- 查询 姓名和id
SELECT 
	NAME,-- 姓名
	id  -- id
FROM 
	student;-- 学生表

SELECT *FROM student;

SELECT address FROM student;

-- 去除重复的结果集
SELECT DISTINCT address FROM student;
SELECT DISTINCT NAME,address FROM student;

-- 计算math和English分数之和

SELECT NAME,math,English,biological,physical,math+English+biological+physical AS 总分 FROM student;
-- 如果有null 参与的运算,计算结果都为null
SELECT NAME,math,English,biological,physical,IFNULL(math,0)+English+biological+physical AS 总分 FROM student;

SELECT NAME 姓名,math 数学,English 英语,biological 生物,physical 物理,math+English+biological+physical 总分 FROM student;



3.条件查询
	1.where子句后跟条件
	2.运算符
        * >、<、<=、>=、=、<>
        *BETWEEN...AND
        *IN(集合)
        *LIKE:模糊查询
        	*占位符:
        		*_:单个任意字符
        		*%:多个任意字符
        *IS NULL
        *and 或&&
        *or 或 ||
        *not 或!
	

+physical 总分 FROM student;

3.条件查询
1.where子句后跟条件
2.运算符
* >、<、<=、>=、=、<>
*BETWEEN…AND
*IN(集合)
*LIKE:模糊查询
*占位符:
*_:单个任意字符
*%:多个任意字符
*IS NULL
*and 或&&
*or 或 ||
*not 或!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值