mysql使用基础 sql语句与数据完整性(二)

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

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

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

假设已经存在表user :

 1 mysql>CREATE TABLE uesr(
 2     id int,
 3     username varchar(200),
 4     gender varchar(10),
 5     birthday date,
 6     entry_date date,
 7     job varchar(200),
 8     salary float(8,2),
 9     resume text
10 );

查看表中的所有记录: 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‘,‘0‘,‘1991-09-07‘,‘2013-04-12‘,‘CTO‘,10000.00,‘beauty‘);

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

mysql>INSERT INTO user VALUES (2,‘Jack‘,‘1‘,‘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,必须唯一

 1 CREATE TABLE shanghai1(
 2     id int PRIMARY KEY,
 3     name varchar(100)
 4 );
 5
 6
 7 //实际开发中不建议使用。
 8 CREATE TABLE shanghai2(
 9     id int PRIMARY KEY auto_increment,
10     name varchar(100)
11 );
12
13 insert into shanghai2 (name) values(‘aa‘);    

②域完整性

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

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

1 CREATE TABLE shanghai3(
2     id int PRIMARY KEY,
3     name varchar(100) NOT NULL,
4     idnum varchar(100) unique
5 );

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

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

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

一对多:

 1 create table department(
 2     id int primary key,
 3     name varchar(100)
 4 );
 5
 6 create table employee(
 7     id int primary key,
 8     name varchar(100),
 9     salary float(8,2),
10     dept_id int,
11     constraint dept_id_fk foreign key(dept_id) references department(id)
12 );

多对多:

 1 create table teacher(
 2     id int primary key,
 3     name varchar(100),
 4     salary float(8,2)
 5 );
 6
 7 create table student1(
 8     id int primary key,
 9     name varchar(100),
10     grade varchar(10)
11 );
12
13 create table teacher_student1(
14     t_id int,
15     s_id int,
16     primary key(t_id,s_id),
17     constraint t_id_fk foreign key(t_id) references teacher(id),
18     constraint s_id_fk foreign key(s_id) references student1(id)
19 );

一对一:

 1 create table human(
 2     id int primary key,
 3     name varchar(100)
 4 );
 5
 6 create table idcard(
 7     id int primary key,
 8     num varchar(100),
 9     constraint huanm_id_fk foreign key(id) references human(id)
10 );
时间: 2024-10-14 07:45:58

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

Mysql之基础sql语句

密码修改:mysqladmin -uroot -p(原始密码) password "123"查看用户信息:select user(); 跳过正常登录:mysqld_safe --skip-grant-tables,然后打开另外一个终端然后更改密码:update mysql.user set password=password("") where user="root" and host="localhost";最后刷新: fl

mysql使用基础 sql语句(一)

命令行输入mysql -u root -p,回车再输入密码,进入mysql. 终端命令以分号作为一条语句的结束,可分为多行输入,只需在最后加上分号即可.如下图: 一.DDL:数据定义语言 Data Definition Language 作用:定义数据库或者表结构的. 操作的对象:数据库或表的结构的. 关键字:CREATE ALTER DROP ①查询数据库: 显示目前有几个库,输入: mysql>SHOW DATABASES; ②创建数据库: 创建一个名称为mydb1的数据库: mysql>

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

数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于excel),用来存放多行内容/多条记录 5. 记录:事物一系列典型的特征 6. 数据:描述事物特征的符号 MySQL数据库就是一个套接字软件,用来管理其他机器上的数据文件 MySQL介绍: MySQL是一个关系型数据库管理系统:就是一个基于socket编写的C/S架构胡软件 客户端软件 mysql

MySQL基本的Sql语句

一 . 常用mysql命令行命令 1 .启动MYSQL服务  net start mysql 停止MYSQL服务  net stop mysql 2 . netstat –na | findstr 3306 查看被监听的端口 , findstr用于查找后面的在端口是否存在 3 . 在命令行中登陆MYSQL控制台 , 即使用 MYSQL COMMEND LINE TOOL 语法格式 mysql –user=root –password=123456 db_name 或 mysql –uroot –

怎样在dos里进入mysql,执行sql语句

1.进入mysql bin目录下,执行mysql.exe 2.用mysql -uroot -p登陆mysql之后就可以使用 怎样在dos里进入mysql,执行sql语句,布布扣,bubuko.com

MySQL管理之SQL语句实例

MySQL管理之SQL语句实例 首先,我们来导入world库,这个world库中的表是mysql ocp考试专用表,在网上有下 mysql> source/root/world_innodb.sql 表结构如下: 本文来自http://yijiu.blog.51cto.com 转载请经博主允许 ,盗帖可耻! CREATE TABLE `Country` (  `Code` char(3) NOT NULL DEFAULT '',  `Name` char(52) NOT NULL DEFAULT

python基础---sql语句

数据库系统: 数据库:文件夹 数据表:文件 表记录:一条数据 sql语句规范 sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言 <1> 在数据库系统中,SQL语句不区分大小写(建议用大写) .但字符串常量区分大小写.建议命令大写,表名库名小写: <2> SQL语句可单行或多行书写,以";"结尾.关键词不能跨多行或简写. <3> 用空格和缩进来提高语句的

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

基础SQL语句,记录以备查阅.(在HeiDiSql中执行) # 创建数据库 Create Database If Not Exists VerifyIdear Character Set UTF8; # 创建表 Create Table If Not Exists VerifyIdear.MyTable( ID Bigint(8) unsigned Primary key Auto_Increment, Updatetime DateTime, name VarChar(128) )Engine

mysql表级sql语句

create table table_name ( id int unsigned primary key AUTO_INCREMENT, username varchar(32) not null, nickname varchar(16) not null default '匿名', unique key(username) ); CREATE TABLE IF NOT EXISTS `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT