海尔建设网站的内容,深圳小程序,设计网站p站,去年做哪个网站能致富MySql基础学习 一、数据库1.1 什么是数据库1.2 MySql的启动与停止1.3 MySql数据模型 二、SQL2.1 SQL通用语法2.2 SQL分类2.2.1 数据类型2.2.2 DDL使用方法2.2.3 、表操作-修改删除DDL总结 2.3 DML2.3.1 DML添加数据2.3.2 DML---修改数据2.3.3 DML---删除数据DML总结 2.4 D… MySql基础学习 一、数据库1.1 什么是数据库1.2 MySql的启动与停止1.3 MySql数据模型 二、SQL2.1 SQL通用语法2.2 SQL分类2.2.1 数据类型2.2.2 DDL使用方法2.2.3 、表操作-修改删除DDL总结 2.3 DML2.3.1 DML添加数据2.3.2 DML---修改数据2.3.3 DML---删除数据DML总结 2.4 DQL2.4.1 DQL基本查询2.4.2 DQL-条件查询2.4.3 DQL-聚合函数2.4.4 DQL-分组查询2.4.5 DQL-排序查询2.4.5 DQL-分页查询 2.5 DQL案列2.6 DQL执行顺序2.7 DQL总结2.8 DCL2.8.1 DCL-管理用户2.8.2 DCL-权限控制 2.9 DCL总结 一、数据库
1.1 什么是数据库
名称全称简称数据库存储数据的仓库数据是有组织的进行存储DataBase ( DB)数据库管理系统操纵和管理数据库的大型软件DataBase Management System (DBMS)SQL操作关系型数据库的编程语言定义了一套操作关系型数据库统一标准Structured Query Language(SQL) 1.2 MySql的启动与停止
启动
net start mysql80停止
net stop mysql80在开机的时候MySql就默认打开了
客户端连接方式 MySQL提供的客户端明命令行工具 系统自带的命令行工具执行指令
mysql -u root -p
username//再输入密码
1.3 MySql数据模型
关系型数据库(RDBMS) 概念:建立在关系模型基础上由多张相互连接的二维表组成的数据库。
特点 使用表存储数据格式统一便于维护使用SQL语言操作标准统一使用方便 二、SQL
2.1 SQL通用语法 SQL语句可以单行或多行书写以分号结尾。 SQL语句可以使用空格/缩进来增强语句的可读性 MySQL数据库的SQL语句不区分大小写关键字建议使用大写。 注释: 单行注释:-- 注释内容或# 释内容(MySQL特有 多行注释: /*注释内容*/
2.2 SQL分类
分类全称说明DDLData Definition Language数据定义语言用来定义数据库对象(数据库表字段)DMLData Manipulation Lanquage数据操作语言用来对数据库表中的数据进行增删改DQLData Query Language数据查询语言用来查询数据库中表的记录DCLData Control Language数据控制语言用来创建数据库用户、控制数据库的访问权限
2.2.1 数据类型
基本数据类型
类型大小有符号SIGNED范围无符号UNSIGNED描述TINYINT1 byte(-128127)(0255)小整数值SMALLINT2 bytes(-3276832767)(065535)大整数值MEDIUMINT3 bytes(-83886088388607)(016777215)大整数值INT或INTEGER4 bytes(-21474836482147483647)(04294967295)大整数值BIGINT8 bytes(一2^63 ,2^(63-1))(02^(64-1))极大整数值FLOAT4 bytes(-3.402823466E383.402823466351 E38)0和(1.175494351 E-383.402823466 E38)单精度浮点数值DOUBLE8 bytes(-1.7976931348623157E3081.7976931348623157 E308)0和(2.2250738585072014 E-3081.7976931348623157 E308)双精度浮点数值DECIMAL依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值小数值(精确定点数)
DECIMAL中精度表示数字的总位数标度表示小数的位数
字符串数据类型
类型大小描述CHAR0-255 bytes定长字符串VARCHAR0-65535 bytes变长字符串TINYBLOB0-55 bytes不超过255个字符的二进制数据TINYTEXT0-255 bytes短文本字符串BLOB0-65 535 bytes进制形式的长文本数据TEXT0-65 535 bytes长文本数据MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据MEDIUMTEXT0-16 777 215 bytes中等长度文本数据LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据LONGTEXT0-4 294 967 295 bytes极大文本数据
2.2.2 DDL使用方法
查询 查询所有数据库
SHOW DATABASES查询当前数据库
SELECT DATABASE();创建
CREATE DATABASE[IF NOT EXISTS]数据库名
[DEFAULT CHARSET 字符集][COLLATE 排序规则];删除
DROP DATABASE[IF EXISTS]数据库名;使用
USE 数据库名;查询当前数据库所有表
SHOW TABLES:- 查询表结构
DESC 表名;查询指定表的建表语句
SHOW CREATE TABLE 表名mysql create database helloWorld;
Query OK, 1 row affected (0.01 sec)
//查询数据库
mysql show databases;
--------------------
| Database |
--------------------
| cast |
| helloworld |
| information_schema |
| mysql |
| performance_schema |
| sys |
--------------------
#删除一个数据库
mysql drop database helloWorld;
Query OK, 0 rows affected (0.01 sec)
#创建一个指定编码规则的数据库
mysql create database cast default charset utf8mb4;
Query OK, 1 row affected (0.01 sec)
#查询当前数据库
mysql select database();
------------
| database() |
------------
| cast |
------------
DDL-表操作-创建
CREATE TABLE 表名(字段1 字段1 类型[COMMENT字段1注释],字段2 字段2 类型[COMMENT字段2注释],字段3 字段3 类型[COMMENT字段3注释],...字段n 字段n 类型[COMMENT字段n注释]
)[COMMENT 表注释];
注意:[...]为可选参数最后一个字段后面没有逗号举例
mysql create table itheima(- id int comment学号,- name varchar(50) comment姓名,- age int comment年龄,- gender varchar(1) comment性别- ) comment用户信息;
Query OK, 0 rows affected (0.02 sec)mysql show tables;
-------------------
| Tables_in_itheima |
-------------------
| itheima |
-------------------
1 row in set (0.00 sec)mysql desc itheima;
------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
------------------------------------------------
| id | int | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | | NULL | |
| gender | varchar(1) | YES | | NULL | |
------------------------------------------------
4 rows in set (0.00 sec)mysql show create table itheima;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Table | Create Table|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| itheima | CREATE TABLE itheima (id int DEFAULT NULL COMMENT 学号,name varchar(50) DEFAULT NULL COMMENT 姓名,age int DEFAULT NULL COMMENT 年龄,gender varchar(1) DEFAULT NULL COMMENT 性别
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci COMMENT用户信息 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 row in set (0.00 sec)create table user(- id int comment编号,- userId int comment员工编号,- username varchar(10) comment员工名字,- gender char(1) comment性别,- sfz varchar(18) comment身份证,- Comeday date comment入职时间- ) comment员工表;
Query OK, 0 rows affected (0.01 sec)2.2.3 、表操作-修改删除
DDL-表操作-修改 添加字段
ALTER TABLE 表名 ADD 字段名 类型长度[COMMENT 注释][约束];
例如 alter table user add bus varchar(10) comment乘坐的公交;DDL-表操作-修改 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释][约束];例如 alter table user change bus busname varchar(30) comment修改的字段名字和数据长度;DDL-表操作-修改 删除字段
ALTER TABLE 表名 DROP 字段名;
例如
alter table user drop databa;DDL-表操作-修改 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
例如 alter table user drop busname;DDL-表操作-删除 删除表
DROP TABLE[IF EXISTS]表名;
删除指定表并重新创建该表
TRUNCATE TABLE 表名;
注意:在删除表时表中的全部数据也会被删除。
例如
truncate table user;
drop table user;DDL总结
1.DDL-数据库操作
SHOW DATABASES
CREATE DATABASE 数据库名
USE 数据库名 ;
SELECT DATABASE)
DROP DATABASE 数据库名2.DDL-表操作
SHOW TABLES
CREATE TABLE 表名(字段 字段类型字段 字段类型 );
DESC 表名;
SHOW CREATE TABLE 表名;
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO ...;DROP TABLE 表名2.3 DML
DML-介绍DML英文全称是Data Manipulation Language(数据操作语言)用来对数据库中表的数据记录进行增删改操作。添加数据INSERT)修改数据UPDATE)删除数据DELETE)
2.3.1 DML添加数据
1. 给指定字段添加数据
INSERTINTO 表名(字段名1,字段名2, .) VALUES (值1, 值2,...);2. 给全部字段添加数据
INSERT INTO 表名 VALUES (值1, 值2, ...);3. 批量添加数据
INSERTINTO 表名(字段名1, 字段名2, ...) VALUES (值1, 值2,.),(值1, 值2,...),(值1,值2,...);
INSERTINTO 表名 VALUES (值1, 值2, ...),(值1,值2,...),(值1, 值2,...) ;注意: 插入数据时指定的字段顺序需要与值的顺序是一一对应的字符串和日期型数据应该包含在引号中。插入的数据大小应该在字段的规定范围内 alter table user add username varchar(10) comment 用户名字;
alter table user add gender char(1) comment 用户性别;insert into user(id, age, username, gender) values(1,18,张三,男);select * from user;insert into user values (2,14,李四,男)insert into user values (3,25,王五,女),(4,25,刘诗诗,女)
2.3.2 DML—修改数据
UPDATE 表名 SET 字段名1 值1,字段名2 值2,....[ WHERE 条件];注意: 修改语句的条件可以有也可以没有如果没有条件则会修改整张表的所有数据。 2.3.3 DML—删除数据
DELETE FROM 表名[WHERE 条件]注意 DELETE 语句的条件可以有也可以没有如果没有条件则会删除整张表的所有数据DELETE语句不能删除某一个字段的值(可以使用UPDATE)。 #删除女性玩家
delete from user where gender 女;#删除所有玩家
delete from user ;
DML总结
1.添加数据
INSERT INTO 表名(字段1, 字段2,...) VALUES(值1,值2,...)[,(值1,值2,...) ... ];2.修改数据
UPDATE 表名 SET 字段1 值1,字段2值2[WHERE 条件1;3.删除数据
DELETE FROM 表名[WHERE 条件1;2.4 DQL
DQL-介绍 DOL英文全称是Data QueryLanquage(数据查询语言)数据查询语言用来查询数据库中表的记录。 查询关键字:SELECT
基本语法
2.4.1 DQL基本查询
1. 查询多个字段
SELECT 字段1,字段2, 字段3 ... FROM 表名
SELECT *FROM 表名2. 设置别名
SELECT 字段1 [AS 别],字段2[AS 别名2] ... FROM 表名3. 除重复记录
SELECT DISTINCT 字段列表 FROM 表名小练习查找数据部分全部去重
#添加table
create table user(name varchar(20) comment 员工名字,age tinyint unsigned comment 员工年龄,address varchar(20) comment 员工居住地址,ID int comment 员工工号
)comment 员工信息表;#添加数据
insert into user (name, age, address, ID)
values (张三,23,上海,1),(李四,24,江苏,2),(王五,25,上海,3),(奥萨蒂,23,上海,4),(王盛德,28,四川,5);select * from user;#查询部分字段
select name,age
from user;#查询全部字段
select *
from user;select name, age, address, ID from user;#查询所有的人的地址起别名
select address as员工居住城市 from user;
select address 员工居住城市 from user;#查询所有的人的地址起别名不要重复的名字
select distinct address 员工地址 from user;2.4.2 DQL-条件查询 语法
SELECT 字段列表 FROM 表名 WHERE 条件列表条件 小练习
#查询年龄大于等于20岁的人
select name 年龄大于等于20的人 from user where age 20;#查询居住在上海的人
select name 居住在上海的人 from user where address 上海;# 查询23 24 25 的人
select * from user where age in(23,24,25);#查询为三个字的人
select name 三个字的人 from user where name like _ _ _;#年龄最后为3的人
select name 年龄最后为3的人 from user where age like %3;2.4.3 DQL-聚合函数
1. 介绍 将一列数据作为一个整体进行纵向计算 2. 常见聚合函数
函数功能count统计数量max最大值min最小值avg平均值sum求和
3. 语法
SELECT 聚合函数(字段列表) FROM 表名#求取最大年龄
select max(age) from user;#求数量
select count(name) from user;#求取最小年龄
select min(age) from user;#求取上海人的平均年龄
select avg(age) from user where address 上海;2.4.4 DQL-分组查询
1. 语法
SELECT 字段列表 FROM 表名[WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件];2. where与having区别 执行时机不同: where是分组之前进行过滤不满足where条件不参与分组;而having是分组之后对结果进行过滤 判断条件不同 where不能对聚合函数进行判断而having可以。 #查询年龄大于20岁小于等于25的人数并且根据工作地点进行分组获取员工数量大于等于三的工作地址
select address,count(*) workaddress from user where age between 20 and 25 group by address having workaddress 2;注意 1.执行顺序: where 聚合函数 having 2.分组之后查询的字段一般为聚合函数和分字段查询其他字段无任何意义。 2.4.5 DQL-排序查询
语法1
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;排序方式 ASC:升序 (默认值) DESC:降序 注意: 如果是多字段排序当第一个字段值相同时才会根据第二个字段进行排序.
#根据年龄升序排列
select * from user order by age ;#现根据年龄分若一样再按照id排序
select * from user order by age desc , ID desc ;2.4.5 DQL-分页查询
语法
SELECT 字段列表 FROM 表名 LIMIT 起始索查询记录数注意 起始索引从0开始起始索引 (查询页码 - 1)* 每页显示记录数 分页查询是数据库的方言不同的数据库有不同的实现MySQL中是LIMIT。如果查询的是第一页数据起始索引可以省略直接简写为 limit 10。 #分页展示显示第一页一页3数据
select * from user limit 0,3;#展示第二页一页3数据 页面数-1 *该页展示的数量
select * from user limit 3,3;2.5 DQL案列 #查询年龄为182021的员工
select *from emp where age in(18,20,21);
#查询性别男并且年龄在18-20岁以内的姓名为两个字的员工
select *from emp where gender男and username like __ and emp.age between 18 and 20;
#统计员工表年龄小于20男性员工和女性员工的人数
select gender,count(*)from emp where age20 group by gender;
#查询所有年龄小于等于20岁员工的姓名和年龄并对查询结果按年龄升序排序如果年龄相同按入职时间降序排序
select username,age from emp where age20 order by age asc , entrydate asc ;
#查询性别为男且年龄在20-40岁(含)以内的前5个员工信息对查询的结果按年龄升序排序年龄相同按入职时间升序排序。
select *from emp where age between 20 and 30 order by age asc , entrydate limit 0,5 ;
2.6 DQL执行顺序
FROM 表名列表WHERE 条件列表GROUP BY分组字段列表HAVING 分组后条件列表SELECT 字段列表ORDER BY 排序字段列表LIMIT 分页参数
2.7 DQL总结 2.8 DCL
介绍 DCL英文全称是Data (ontrolLanguage(数据控制语言)用来管理数据库 用户、控制数据库的访问 权限。 2.8.1 DCL-管理用户
1. 查询用户
USE mysql
SELECT* FROM user;2. 创建用户
CREATE USER用户名主机名 IDENTIFIED BY密码3.修改用户密码
ALTER USER用户名主机名 IDENTIFIED WITH mysql_native_password BY新密码4.删除用户
DROP USER用户名主机名注意: 主机名可以使用 % 通配这类SQL开发人员操作的比较少主要是DBA ( Database Administrator 数据库管理员) 使用。 #查询用户
use mysql;
select *from user;#创建用户
create user heima% identified by 123456;#修改用户密码1234
alter user heima% identified with mysql_native_password by 1234;#删除用户
drop user heima% ;2.8.2 DCL-权限控制
MySQL中定义了很多种权限但是常用的就以下几种:
权限说明ALL, ALL PRIVILEGES所有权限SELECT查询数据INSERT插入数据UPDATE修改数据DELETE删除数据ALTER修改表DROP删除数据库/表/视图CREATE创建数据库/表
1 .查询权限
SHOW GRANTS FOR用户名主机名2.授予权限
GRANT 权限列表 ON 数据库名.表名 TO用户名主机名”3.撤销权限
REVOKE 权限列表 ON 数据库名表名 FROM用户名主机名注意
多个权限之间使用逗号分隔授权时数据库名和表名可以使用 * 进行通配代表所有
# 查询权限
show grants for heima%;#添加权限
grant all on root.* to heima%;#消除权限
revoke all on root.* from heima%;2.9 DCL总结