MySQL数据库

    xiaoxiao2023-11-05  142

    数据库的基本概念

    *MySQL服务启动 1.手动 2.cmd-->services.msc 打开服务的窗口 3.以管理员身份打开cmd net start mysql 启动 net start mysql 关闭 *MySQL登录 1. mysql -uroot -proot 2. mysql -hip -uroot -p连接目标的密码 3. mysql --host=ip --user=root --password=连接目标的密码 *MySQL退出 1. extit 2. quit *MySQL的目录结构 1. 安装目录 配置文件 my.ini 2. 数据目录 数据库:文件夹 表:文件 数据:data

    一、SQL

    1.什么是SQL: Structured Query Language:结构化查询语言,定义了操作所有关系型数据库的规则 每一种数据库操作的方式存在不一样的地方,称为“方言” 2.SQL通用语法 1. SQL语句可以单行或多行书写,以分号结尾 2. 可以使用空格和缩进来增强语句的可读性 3. MySQL数据库的SQL语句不区分大小写,建议使用大写 4. 三种注释 * 单行注释:--(一定要加空格)注释内容 或#注释内容(mysql 特有) 多行注释:/*注释内容*/ 3. SQL的分类

    二、DDL:操作数据库、表

    1.操作数据库:CRUD

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

    2.查询表

    1.C(Create):创建 语法: create table 表名( 列名1 数据类型1, 列名2 数据类型2, ....... 列名n 数据类型n ) 数据类型: 1)int 2)double:score double(num1, num2) num1:总位数 num2:小数点后位数 3)date:只包含年月日,yyy-MM-dd 4)datetime:日期,包含年月日时分秒 yyy-MM-dd HH:mm:ss 5)timestamp:时间错类型 ,包含年月日时分秒 yyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值 6)varchar:字符串 name varchar(num):num为最大字符数 创建表 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):修改 1.修改表名 alter table 表名 rename to 新的表名; 2.修改表的字符集 alter table 表名 character set 字符集名称; 3.添加一列 alter table 表名 add 列名 数据类型; 4.修改列的名称 类型 alter table 表名 modify 列名 新数据类型; alter table 表名 change 要修改的列名 新列名 新数据类型; 5.删除列 alter table 表名 drop 列名; 4.D(Delete) :删除 drop table 表名; drop table if exists 表名;

    客户端图形化工具SQLYog

    三、DML:

    1.添加数据 1.语法:insert into 表名(列名1,列名2,····列名n) values(值1,值2,····值n); 2.注意: (1)列名和值要一一对应 (2)如果表名后,不定义列名,则默认给所有列赋值 insert into 表名 values(值1,值2,····值n); (3)除了数字其他要用引号(单双都可以)引用 2.删除数据 1.语法: delete from 表名 [where 条件]; 2.注意: 如果不加条件,则删除表中所有记录 3.删除所有记录 delete from 表名; 不推荐使用,有多少条记录就会执行多少次删除操作 TRUNCATE TABLE 表名; 推荐使用 (删除表,再创建一个相同的表) 3.修改数据 1.语法: update 表名 set 列名1 = 值1,列名2 = 值2, 。。。[where 条件]; 例子:UPDATE stu SET age = 22 WHERE id = 4; 2.注意: 如果不加任何条件则会将表中记录全部修改

    四、DQL:查询语句

    1.排序查询 1.语法:order by 字句 order by 排序字段1 排序方式1,排序字段2,排序方式2 2.排序方式: ASC:升序,默认的。 DESC:降序 3.注意: 如果有多个排序条件,则当前一个条件一样时,才回判断第二个条件 2.聚合函数:将一列数据作为一个整体,进行纵向的计算 SELECT 聚合函数(NAME) FROM 表名; 1. count:计算个数 (1)尽量选择非空的列:主键 (2)count(*) 2. max:计算最大值 3. min:计算最小值 4. sum:求和 5. avg:计算平均值 注意:聚合函数的计算会排除NULL值 解决方案: 1. 选择不包含非空的列进行计算 2. IFNULL函数 3.分组查询 1. 语法:group by 分组字段; 2. 注意: (1)分组之后查询的字段:分组字段、聚合函数 (2)where 和 having 的区别: where 在分组之前进行限定,如果不满足条件,则不参与分组。 having在分组之后进行限定,如果不满足结果,则不会被查询出来 where 后不可以跟聚合函数,having可以进行聚合函数的判断 4.分页查询 1.语法:limit 开始的索引,每页查询的条数 2.公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数 5.条件查询 1.where字句后跟条件 2.运算符: @ > 、 < 、 <= 、 >= 、= 、 <> @ BETWEEN...AND @ IN(集合) @ LIKE:模糊查询 占位符: _ 单个任意字符 % 多个任意字符 @ IS NULL @ and 或 && @ or 或 || @ not 或 |

    约束

    *概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。 *分类: 1.主键约束:primary key 2.非空约束:not null 3.唯一约束:unique 4.外键约束:foreign key # 非空约束:not null,值不能为NULL 1.创建表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name 为非空 ); 2.创建表后,添加非空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL; 3.删除name的非空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20); # 唯一约束:unique,值不能重复 -- 创建表时,添加唯一约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) UNIQUE -- 添加了唯一约束 ); -- 注意mysql中,唯一约束可以有多个null -- 删除唯一约束 ALTER TABLE STU DROP INDEX NAME; -- 在创建表后,添加唯一约束 ALTER TABLE stu MODIFY name VARCHAR(20) UNIQUE; # 主键约束:primary key 1.注意: 1.含义:非空且唯一 2.一张表只能有一个字段为主键 3.主键就是表中记录的唯一标识 2.在创建表时,添加主键约束 create table stu( id int primary key, -- 添加了主键约束,id不可以重复,不可以为null name varchar(20) ); 3.删除主键 ALTER TABLE stu DROP PRIMARY KEY; 4.创建表后,添加主键 ALTER TABLE stu MODIFY id INT PRIMARY KEY; 5.自动增长 概念:如果某一列是数值类型的,使用auto_increment 可以完成值的自动增长 在创建表时,添加主键约束,并且完成主键自增长 create table stu( id int primary key auto_increment, -- 给id添加主键约束 name varchar(20) );
    最新回复(0)