表头(header)
: 每一列的名称列(col)
: 具有相同数据类型的数据的集合行(row)
: 每一行用来描述某个人/物的具体信息值(value)
: 行的具体信息, 每个值必须与该列的数据类型相同键(key)
: 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性
登录MySQL
mysql -h 127.0.0.1 -P<端口号> -u<用户名> -p<密码>
# 默认用户名<root>,-p 是密码,参数后面不需要空格,-h和-P默认本地参数可以忽略
mysqladmin -u<用户名> -p<原密码> password <新密码>
# 在cmd窗口下直接修改(不要登录进去)
mysql> exit
# 退出 使用 “quit;” 或 “\q;” 一样的效果
数据库的操作
对于表的操作需要先进入库:use 库名;
create database test character set utf8mb4; -- 创建一个名为 test 的数据库,数据库字符编码指定为 utf8mb4
show databases; -- 显示数据库列表。
show create database test; -- 指定查看库的信息
use test; -- 选择创建的数据库 test
select database(); -- 查看当前选择的数据库
alter database test charset= 'gbk' -- 修改库的字符编码
补充:SQL语句使用分号作为结束符
数据库表的操作
CREATE TABLE 语法
语句用于从表中选取数据。
show tables; -- 显示库 test 下面所有的表名字
describe 表名; -- 显示数据表的结构 or: desc 表名;
delete from 表名; -- 清空表中记录
drop table 表名 -- 删除表
drop table if exists `t1`; -- 如果数据库中存在t1表,就把它从数据库中drop掉
create table 表名称 (
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
); -- 注意在最后一行字段结尾不能加逗号
实例
create table t1(
id int,
name varchar(255)
); -- 注意在最后一行字段结尾不能加逗号
mysql> desc t1;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
数据库表增删改查
SELECT(查)
SELECT 语法
语句用于从表中选取数据。
SELECT 列名称1, 列名称2, ... FROM 表名称;
SELECT * FROM 表名称;
SELECT * FROM 库名称.表名称
实例
select id, name from t1; -- 查看 t1 表指定字段数据
select * from t1; -- 查看 t1 表所有的数据
select * from test.t1; -- 查看 test 库中 t1 表的所有数据
INSERT(增)
INSERT 语法
用于向表格中插入新的行。
INSERT INTO 表名称 (列名称1, 列名称2, 列名称3, ...) VALUES (值1, 值2, 值3, ...);
INSERT INTO 表名称 VALUES (值1, 值2, 值3, ...);
INSERT INTO 表名称 VALUES (值1), (值2), (值3) ...;
实例
insert into t1 values(1, 'kevin'); -- 单条数据
insert into t1 values(2, 'tony'), (3, 'jerry'); -- 多条数据
insert into t1 (name, id) values('jason', 4); -- 打破字段顺序
mysql> select * from t1;
+------+-------+
| id | name |
+------+-------+
| 1 | kevin |
| 2 | tony |
| 3 | jerry |
| 4 | jason |
+------+-------+
4 rows in set (0.00 sec)
UPDATE(改)
Update 语法
语句用于修改表中的数据。
UPDATE 表名称 SET 列名称1 = 值1, 列名称2 = 值2, ... WHERE 条件;
实例
update t1 set name = 'kevin666' where id=1;
mysql> select * from t1;
+------+----------+
| id | name |
+------+----------+
| 1 | kevin666 |
| 2 | tony |
| 3 | jerry |
| 4 | jason |
+------+----------+
4 rows in set (0.00 sec)
DELETE(删)
DELETE 语法
语句用于删除表中的现有记录。
DELETE FROM 表名称 WHERE 条件;
实例
delete from t1 where id=4; -- 删除 表t1 id 为4的数据
delete from t1 where id in (2,3); -- 删除表t1 id 为2和3的两条数据
delete from t1; -- 删除表中所有数据
字符编码
mysql> \s # 查看MySQL默认字符编码
--------------
mysql Ver 8.0.27 for macos12.0 on x86_64 (Homebrew)
Connection id: 11
Current database: test
Current user: root@localhost
SSL: Not in use
Current pager: less
Using outfile: ''
Using delimiter: ;
Server version: 8.0.27 Homebrew
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /tmp/mysql.sock
Binary data as: Hexadecimal
Uptime: 5 hours 34 min 13 sec
Threads: 2 Questions: 236 Slow queries: 0 Opens: 253 Flush tables: 3 Open tables: 170 Queries per second avg: 0.011
--------------
如果是5.X系列 显示的编码有多种,如果是8.X系列 显示的统一是utf8mb4
,utf8mb4
是utf8
优化版本 支持存储表情
统一字符编码
在配置文件加入如下配置,并保存重启服务端
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8