插入命令SELECT

格式:
INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);
例如:
insert into employee(id,name,phone)VALUES(01, 'tom',110110110);

注意事项:

  1. 列名要已经创建好的才能插入数值
  2. 字符类型的数据要用双引号’’
  3. 也可以使用insert into 表明 VALUES(值1,值2,值3);数据自动会按列名顺序插入到表中。

查看表的内容

命令:
SELECT * FROM 表名;
例如:
select * from employee;

约束

约束的作用

通过对表的行或列的数据做出限制,来确保表的数据的完整性,唯一性。

常用的约束

约束类型 主键 默认值 唯一 外键 非空
关键字: primary key default unique foreign key not null

主键

主键的作用

如果有两行记录完全相同,那么对于 Mysql 就会认定它们是同一个实体。这个时候就需要使用主键。
主键(primary key)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到这一行,因此主键十分重要,主键不能有重复记录且不能为空

用法


  1. CREATE DATABASE test;
  2. use test;
  3. create table department
  4. (
  5. id CHAR(20)primary key, //声明主键
  6. name char(20)not null,//不能为空
  7. age int(10)default '10' //默认值为10
  8. );

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();

语法规范

  1. 不区分大小写
  2. 建议关键字大写,表名,列名小写
  3. 每条命令用分号;结尾
  4. 如果命令过长可以换行缩进,收入;后才会执行
  5. 注释
    单行注释:#注释文字或- -注释文字
    多行注释: / 注释文字 /

SQL编码设置

  1. 创建一个test数据库,并默认字符编码为GBK(为了效率一般这里创建之前进行判断该数据库是否已存在)
    create database if not exists test default charset gbk;
  2. 查询全部数据库
    show databases;
  3. 查询建表语句(主要查看设置字符集是否生效了)
    show create database test;
  4. 修改test数据库的默认字符集为UTF-8,并查看是否生效
    alter database test default charset utf8;
    show create database test;
  5. 使用数据库test,并查看当前正在使用的数据库
use test;
select database();
  1. 删除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)