数据库SQL快速入门(持续更新)
MySQL软件的安装
1. 在官网下载压缩包文件(我下的版本是8.0.23)
2. 先解压,然后在MySQL文件夹下创建一个my.ini文件(可先创建一个.txt文件,再更改文件后缀名)。
3. 配置my.ini文件内容:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=安装mySQL的文件路径
# 设置mysql数据库的数据的存放目录
datadir=安装mySQL的文件路径\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8mb4,这里必须设置为utf8mb4,否则无法登录
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
## 新的改变
4. 进入命令行窗口(这里一定要以管理员身份进入,不然操作的权限不够,可能无法操作成功)
5. 在命令行窗口进行以下操作:
- 输入mysqld --initialize-insecure --user=mysql
- 再输入mysqld -install
- 出现Service successfully installed.表示配置完成
- 启动数据库net start mysql
- 输入mysql -u root -p,不用输入密码直接回车
- 出现mysql>表示配置完成
- 输入alter user user() identified by “密码”;
- 输入net stop mysql关闭数据库
6. 安装成功
MySQL软件的基本操作
- 启动MySQL服务:
net start mysql
- 关闭MySQL服务:
net stop mysql
- MySQL登录:
mysql -u root -p
输入密码
- MySQL退出(两种方式)
exit
quit
SQL的语法学习
SQL全称
SQL全称为Structed Query Language,即结构化查询语言
SQL的通用基础语法
1. SQL可以单行或多行书写,以分号结尾
2. 可以使用空格和缩进来增强语句的可读性
3. MySQL中的SQL语句不区分大小写,但关键字建议大写
4. 注释格式:
- -- 注释内容(注意-- 之后有空格,为单行注释,通用)
- #注释内容 (#之后不需要空格,为单行注释,只在MySQL中使用,不通用)
- /*注释内容*/(多行注释,通用)
SQL的分类(按功能的不同)
1. DDL(Data Definition Language)–>数据定义语言**
- 用来定义数据库的对象:如数据库、表、列等。
- 关键字:create 、drop 、alter
2. DML(Data Manipulation Language)–>数据操作语言 - 用来对数据库中表的数据进行:增、删、改三种操作。
- 关键字:insert 、delete 、update
3. DQL(Data Query Language)–>数据查询语言 - 用来查询数据库中表的记录(数据)
- 关键字:select 、where
4. DCL(Data Control Language)–>数据控制语言【了解即可】 - 用来定义数据库的访问权限和安全级别,以及创建用户
- 关键字:grant 、revoke
图形化辅助工具SQLyog
在命令行窗口输入并查看数据库的相关内容终究显得枯燥无味,这里推荐一款比较好用的图形化辅助工具:SQLyog,直接在网络上搜索资源下载即可,安装十分简便易行,不再赘述。
DDL:操作数据库和表
操作数据库
- 创建数据库
CREATE DATABASE (IF NOT EXISTS) stu (CHARACTER SET) utf8; -- stu为数据库名,utf8为字符集名
- 查询数据库内容
show databases; -- 1. 查询所有数据库名称
show create database stu; -- 2. 查询数据库中的字符集 (查询数据库中的创建语句)
- 修改数据库
ALTER DATABASE stu CHARACTER SET utf8;
- 删除数据库
drop database (if exists) stu;
5.使用数据库
USE stu; --注意这里不再加 DATABASE!
- 查询当前正在使用的数据库名称
SELECT DATABASE();
操作表
- 创建
CREATE TABLE 表名称
(
列名称1 数据类型1,
列名称2 数据类型2,
列名称3 数据类型3,
... ...
列名称n 数据类型n
);
-
注意:最后一列不要加逗号!
-
SQL的数据类型类型
出处:SQL的数据类型类型
- 整型
MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) 3个字节 范围(-8388608~8388607) int(m) 4个字节 范围(-2147483648~2147483647) bigint(m) 8个字节 范围(±9.22*10的18次方) 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。
- 浮点型
MySQL数据类型 含义 float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位 double(m,d) 双精度浮点型 16位精度(8字节) m总个数,d小数位 - 字符串(char,varchar,_text)
MySQL数据类型 含义 char(n) 固定长度,最多255个字符 varchar(n) 固定长度,最多65535个字符 tinytext 可变长度,最多255个字符 text 可变长度,最多65535个字符 mediumtext 可变长度,最多2的24次方-1个字符 longtext 可变长度,最多2的32次方-1个字符 设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。整数部分最大是3位,如果插入数12.123456,存储的是12.1234,如果插入12.12,存储的是12.1200.
-
日期时间类型
MySQL数据类型 含义 date 日期 ‘2008-12-2’ time 时间 ‘12:25:36’ datetime 日期时间 ‘2008-12-2 22:06:44’ timestamp 自动存储记录修改时间
- 查询
- 查询某数据库中所有表的名称
show tables; -- 1. 查询该数据库中所有表的名称
desc persons; -- 2. 查询某个表的名称(person为表名)
- 删除
DROP TABLE (IF EXISTS) person;
- 修改
-- 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 列名;