插入命令SELECT
格式:INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);
例如:insert into employee(id,name,phone)VALUES(01, 'tom',110110110);
注意事项:
- 列名要已经创建好的才能插入数值
- 字符类型的数据要用双引号’’
- 也可以使用
insert into 表明 VALUES(值1,值2,值3);数据自动会按列名顺序插入到表中。
查看表的内容
命令:SELECT * FROM 表名;
例如:select * from employee;
约束
约束的作用
通过对表的行或列的数据做出限制,来确保表的数据的完整性,唯一性。
常用的约束
| 约束类型 | 主键 | 默认值 | 唯一 | 外键 | 非空 |
|---|---|---|---|---|---|
| 关键字: | primary key | default | unique | foreign key | not null |
主键
主键的作用
如果有两行记录完全相同,那么对于 Mysql 就会认定它们是同一个实体。这个时候就需要使用主键。
主键(primary key)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到这一行,因此主键十分重要,主键不能有重复记录且不能为空
用法
CREATE DATABASE test;use test;create table department(id CHAR(20)primary key, //声明主键name char(20)not null,//不能为空age int(10)default '10' //默认值为10);
CREATE DATABASE test;
use test;
create table department
(
id CHAR(20),
name char(20)not null,//不能为空
age int(10)default ‘10’ ,//默认值为10
constraint key_name primary key(id,name)//声明主键名为key_name的主键,并将id和name设置为主键
);
3.
```mysql
create table stu
(
stu_id int(10) not null auto increment, //Int类型,10字节,不为空,自增
性别 char(2) default '男' check (性别 in ('男','女')
)
默认值约束
INSERT 语句中,如果被 DEFAULT 约束的位置没有值,那么这个位置将会被 DEFAULT 的值填充
例:age char(20)default '18',
age字段的默认值为18,在使用insert命令插入时没有age的值时,使用18填充
唯一值约束
规定表中的某列值必须不能重复
用法:
create table test
(
id int(10),
name char(10),
phone int(18),
unique(id) //将id字段设置为唯一,表中其他数值不能与此重复
);
连接命令
mysql -h 192.168.1.1 -P 3306 -u root -p pasword
规则为:mysql -h 主机名 -P 端口号 -u 用户名 -p 密码
-P端口号 这中间有无空格都可以
查看MYsql的版本
select version();
语法规范
- 不区分大小写
- 建议关键字大写,表名,列名小写
- 每条命令用分号
;结尾 - 如果命令过长可以换行缩进,收入
;后才会执行 - 注释
单行注释:#注释文字或- -注释文字
多行注释: / 注释文字 /
SQL编码设置
- 创建一个test数据库,并默认字符编码为GBK(为了效率一般这里创建之前进行判断该数据库是否已存在)
create database if not exists test default charset gbk; - 查询全部数据库
show databases; - 查询建表语句(主要查看设置字符集是否生效了)
show create database test; - 修改test数据库的默认字符集为UTF-8,并查看是否生效
alter database test default charset utf8;show create database test; - 使用数据库test,并查看当前正在使用的数据库
use test;
select database();
- 删除test
drop database if exists test;
结果如下 (默认和修改数据库和表编码还有一种写法是 character set 字符集)
还有一个查询MySQL的全部字符集命令(乱码可以查看这条命令,如果哪里没设置通过修改配置文件即可,
配置文件在根目录的my.nin文件中,如果没有打开隐藏文件夹,C盘下找programData->mysql->my.nin)show variables like '%char%';
演示结果
mysql> create database if not exists test default charset gbk; -- 创建数据库并默认字符集
Query OK, 1 row affected (0.00 sec)
mysql> show databases; -- 显示所有数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> show create database test; -- 查询键数据库语句
+----------+--------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> alter database test default charset utf8; -- 修改字符集
Query OK, 1 row affected (0.00 sec)
mysql> show create database test; -- 查询建数据库语句
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> use test; --使用数据库
Database changed
mysql> select database(); -- 查看正在使用的数据库
+------------+
| database() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)
mysql> drop database if exists test; -- 删除数据库
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%char%'; -- 查询所有相关字符集 乱码重点看星号部分
+--------------------------+--------------------------+
| Variable_name | Value |
+--------------------------+--------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 | ****
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 | ****
| character_set_system | utf8 |
| character_sets_dir | E:\Mysql\share\charsets\ |
+--------------------------+--------------------------+
8 rows in set (0.00 sec)
