二、DML:Data Manipulation Language 数据操作语言

  作用:操作表中的数据的。
  关键:INSERT UPDATE DELETE

  注意:日期或字符串、字符要使用单引号引起来。

假设已经存在表user :

 mysql>CREATE TABLE uesr(
id int,
username varchar(200),
gender varchar(10),
birthday date,
entry_date date,
job varchar(200),
salary float(8,2),
resume text
);

查看表中的所有记录: mysql>SELECT * FROM user;

①插入中文时的问题:(编码问题)

查看数据库目前的各种编码: mysql>SHOW VARIABLES LIKE 'character%';

通知服务器客户端使用的编码字符集: mysql>SET character_set_client=gbk;

显示时乱码: mysql>SET character_set_results=gbk;

②使用insert语句向表中插入记录

不省略字段名插入(建议):

mysql>INSERT INTO user (id,username,gender,birthday,entry_date,job,salary,resume) VALUES (1,'Tom','','1991-09-07','2013-04-12','CTO',10000.00,'beauty');

省略字段名插入(当插入values值顺序与表字段声明必须完全一致):

mysql>INSERT INTO user VALUES (2,'Jack','','1987-09-07','2013-04-12','CEO',10000.00,'hand');

③使用update语句更改表中记录

将所有员工薪水修改为5000元:

mysql>UPDATE user SET salary=5000;

将姓名为Tom的记录薪水改为3000:

mysql>UPDATE user SET salary=3000 WHERE username='Tom';

将姓名为Tom的员工薪水修改为4000,job改为CMO:

mysql>UPDATE user SET salary=4000,job='CMO' WHERE username='Tom';

将Jack的薪水在原有基础上增加1000元:

mysql>UPDATE user SET salary=salary+1000 WHERE username='Jack';

④删除操作

删除表中名称为Tom的记录: mysql>DELETE FROM user WHERE username='Tom';

删除表中所有记录(一条一条的删除): mysql>DELETE FROM user;

使用TRUNCATE删除表中记录(摧毁整张表,然后重建表结构): mysql>TRUNCATE user;

三、数据完整性

数据完整性分为四类:实体完整性(Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referential Integrity)、用户自定义完整性(User-definedIntegrity)。

①实体完整性:

规定表中的一行在表中是唯一的实体,一般是通过定义主键的形式来实现的。实体完整性要求每一个表中的主键字段都不能为空或者重复的值。实体完整性指表中行的完整性。要求表中的所有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性。

关键字:PRIMARY KEY
特点:不能为null,必须唯一

 CREATE TABLE shanghai1(
id int PRIMARY KEY,
name varchar(100)
); //实际开发中不建议使用。
CREATE TABLE shanghai2(
id int PRIMARY KEY auto_increment,
name varchar(100)
); insert into shanghai2 (name) values('aa');

②域完整性

指数据库表的列(即字段)必须符合某种特定的数据类型或约束。域完整性是针对某一具体关系数据库的约束条件。它保证表中某些列不能输入无效的值。

NOT NULL:不能为空
UNIQUE:必须唯一

 CREATE TABLE shanghai3(
id int PRIMARY KEY,
name varchar(100) NOT NULL,
idnum varchar(100) unique
);

关于主键(建议):
逻辑主键:给编程人员用的。与具体业务无关
业务主键:用户也可以用。与具体业务有关

③参照完整性(多表设计)

当更新、删除、插入一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确,简单的说就是表间主键外键的关系。

一对多:

 create table department(
id int primary key,
name varchar(100)
); create table employee(
id int primary key,
name varchar(100),
salary float(8,2),
dept_id int,
constraint dept_id_fk foreign key(dept_id) references department(id)
);

多对多:

 create table teacher(
id int primary key,
name varchar(100),
salary float(8,2)
); create table student1(
id int primary key,
name varchar(100),
grade varchar(10)
); create table teacher_student1(
t_id int,
s_id int,
primary key(t_id,s_id),
constraint t_id_fk foreign key(t_id) references teacher(id),
constraint s_id_fk foreign key(s_id) references student1(id)
);

一对一:

 create table human(
id int primary key,
name varchar(100)
); create table idcard(
id int primary key,
num varchar(100),
constraint huanm_id_fk foreign key(id) references human(id)
);

mysql使用基础 sql语句与数据完整性(二)的更多相关文章

  1. mysql使用基础 sql语句(一)

    csdn博文地址:mysql使用基础 sql语句(一)  点击进入 命令行输入mysql -u root -p,回车再输入密码,进入mysql. 终端命令以分号作为一条语句的结束,可分为多行输入,只需 ...

  2. mysql数据库基础SQL语句总结篇

    常用的sql增删改查语句 创建数据库:create database db_name character set utf8;删除数据库:drop database db_name;切换数据库:use ...

  3. MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

    数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...

  4. MySQL数据库(一)—— 数据库介绍、MySQL安装、基础SQL语句

    数据库介绍.MySQL安装.基础SQL语句 一.数据库介绍 1.什么是数据库 数据库即存储数据的仓库 2.为什么要用数据库 (1)用文件存储是和硬盘打交道,是IO操作,所以有效率问题 (2)管理不方便 ...

  5. Oracle,SQL Server 数据库较MySql数据库,Sql语句差异

    原文:Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 1.关系型数据库 百度百科 关系数据库 ...

  6. MySQL的常用SQL语句.md

    修改密码 这是常见的大家一般都要用的 首先     安装成功了打开cmd --> mysql -u root -p -->输入你的密码     修改mysql root用户密码    格式 ...

  7. 常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释)

    常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释) 一. 增 INSERT INTO 数据表(字段,字段,-) VALUES(值,值-); INSERT INTO emp(empno, ...

  8. 《SQL Server基础——SQL语句》

    SQL Server基础--SQL语句       一.创建和删除数据库: 1.创建数据库(默认化初始值) 格式: CREATE DATABASE 数据库名称 例如: CREATE DATABASE ...

  9. Mysql(Mariadb) 基础操作语句 (持续更新)

    基础SQL语句,记录以备查阅.(在HeiDiSql中执行) # 创建数据库 Create Database If Not Exists VerifyIdear Character Set UTF8; ...

随机推荐

  1. linux—【绝对路径与相对路径】与【【文件基本操作】】(4)

    [绝对路径与相对路径] 绝对路径:我们在获得一个文件的时候,从根目录到二级到更多级目录都写全了, 终才找到这个文件,这种方式就是“绝对路径” 相对路径:目标文件与我本身文件的相对位置 当前目录:./  ...

  2. 23 其它话题 - 《Python 核心编程》

  3. oracle 11g dataguard创建的简单方法

    oracle 10g可以通过基于备份的rman DUPLICATE实现dataguard,通过步骤需要对数据库进行备份,并在standby侧进行数据库的恢复.而到了11g,oracle推出了Dupli ...

  4. linux内核宏container_of前期准备之gcc扩展关键字typeof

    typeof基本介绍 typeof(x) 这是它的使用方法,x可以是数据类型或者表达式.它的作用时期和sizeof类似,就是它是在编译器从高级语言(如C语言)翻译成汇编语言时起作用,这个很重要,稍后会 ...

  5. 再学TSQL基础--单表查询

    本内容是我学习tsql2008的阅读笔记 什么是关系模型? 若对列创建唯一约束,背后中的物理机制也是创建了一个唯一索引. SQL语句的逻辑解析顺序是FROM WHERE GROUP BY HAVING ...

  6. B+树的特点

    1.B+树是应文件系统产生的B树的变种.它依然是一颗多路查找树,与B树相比它的不同体现在: (1).如果非叶子节点包含n个关键码,则这个节点有n个子树. (2).非叶子节点仅包含关键码信息,叶子节点包 ...

  7. 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题

    一.概述   定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型.类加载和连接的过程都是在运行期间完成的. 二. 类的 ...

  8. NOIP2008普及组 题解 -SilverN

    T1 ISBN号码 题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符, 其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符( ...

  9. codeforces 713A A. Sonya and Queries(状态压缩)

    题目链接: A. Sonya and Queries time limit per test 1 second memory limit per test 256 megabytes input st ...

  10. UESTC 916 方老师的分身III --拓扑排序

    做法: 如果有a<b的关系,则连一条a->b的有向边,连好所有边后,找入度为0的点作为起点,将其赋为最小的价值888,然后其所有能到的端点,价值加1,加入队列,删去上一个点,然后循环往复, ...