
表头(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 的数据库,数据库字符编码指定为 utf8mb4show databases; -- 显示数据库列表。show create database test; -- 指定查看库的信息use test; -- 选择创建的数据库 testselect 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: 11Current database: testCurrent user: root@localhostSSL: Not in useCurrent pager: lessUsing outfile: ''Using delimiter: ;Server version: 8.0.27 HomebrewProtocol version: 10Connection: Localhost via UNIX socketServer characterset: utf8mb4Db characterset: utf8mb4Client characterset: utf8mb4Conn. characterset: utf8mb4UNIX socket: /tmp/mysql.sockBinary data as: HexadecimalUptime: 5 hours 34 min 13 secThreads: 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=utf8collation-server=utf8_general_ci[client]default-character-set=utf8[mysql]default-character-set=utf8
