① Mysql- Create/表操作语句
1、create语句
1)创建database
语法:
create database 数据库名 character set 'utf8' collate 'utf8_general_ci';
[character set ‘utf8’ collate ‘utf8_general_ci’] #设置字符集及字符集校对规则
例如创建一个database名为 testdatabase:
#创建数据库 testdatabase
create database testdatabase character set "utf8" collate "utf8_general_ci";
2) 创建表 table
语法:
create table 表名(属性1 数据类型[长度] 约束,属性2 数据类型[长度] 约束,......) engine=innodb default charset=utf8;
mysql中常见数据类型:数值型、日期型、字符型
①数值型:整型、浮点型
类型 | 范围 |
---|---|
tinyint | 1字节,-128~127 |
smallint | 2字节,-32768~32767 |
mediumint | 3字节,-2^23- 2^23-1 |
int | 4字节,-2^31- 2^31-1 |
bigint | 8字节,-2^63~ 2^63-1 |
float(p,s) | 4字节,p表示有效位数,s表示精度 |
double(p,s) | 8字节,p表示有效位数,s表示精度 |
decimal(p,s) | 存储为字符串的浮点数 |
② 日期型:
类型 | 范围 |
---|---|
date | 3字节,日期,yyyy-mm-dd |
time | 3字节,日期,hh-mm-ss |
datetime | 8字节,日期,yyyy-mm-dd hh-mm-ss |
③ 字符型
类型 | 范围 |
---|---|
CHAR(n) | 固定长度字符串,最大为255个字符 效率更高 |
varchar(n) | 可变长度字符串,最大为65535个字符 节约空间 |
sname CHAR(10) | sname的值为smith,此时在内存中同样占用10个字符的空间 |
sname varchar(10) | sname的值为smith,此时在内存中占用5个字符的空间 |
约束
约束类型 | 表示 | 描述 |
---|---|---|
主键约束 | primary key | 表中的每一行都应该具有可以唯一标识自己的列而这个承担标识作用的列称为主键 |
外键约束 | foreign key | 外键用于关联两个表;注意: 所有表的储存引擎必须是innodb类型;被引用表中,必须为被引用列表创建索引;引用表中,必须为引用的列表创建索引 |
非空约束 | not null | 非空 |
唯一约束 | unique | 唯一 |
检查约束 | check(条件) | mysql中不支持检查约束,可以使用,但是没有任何效果 如:check(sex in(‘男’,‘女’) |
默认值 | default | 默认值 |
注意:
- 同一列上有多个约束时,约束之间使用空格隔开
- 同一列上有默认值和其他约束时,默认值写在其他约束前
创建表学生表(学号,姓名,年龄,性别(gender),出生年月,学院编号,年级)
学生表:student
学号:sno 主键
姓名:sname 非空
年龄:age
性别:gender 取值(M/F)默认值’M’
出生年月:birthday
学院编号:xno 外键,引用院系表中的学院编号
年级:grade 非空
#创建student表
create table student
(sno int(5) primary key,
sname varchar(10) not null,
age int(2), #[17,25] check(age between 17 and 25)
gender CHAR(1) default 'M' check(gender in('M','F')),
birthday date,
xno int(4),
grade varchar(10) not null,
index student_index(xno),
foreign key(xno) references collage(xno) on delete cascade on update cascade
)engine=innodb default charset=utf8;
创建表:院系(学院编号,系名,地址)
院系:collage
学院编号:xno 主键
系名:cname 非空
地址:loc
#创建collage表
create table collage
(xno int(4) primary key,
cname varchar(10) not null,
loc varchar(20),
index collage_index(xno)
)engine=innodb default charset=utf8;
注意: 先建被引用表
表的操作
1) alter:用于在已有的表中添加、修改或删除列
① 添加:
alter table 表名 add 列名 数据类型;
如student表原有的属性(列名)只有下面这些(sno\sname\age\gender\birthday\xno\grade); 现在需要增加一个属性(列名)联系方式:tel
如:
alter table student add tel bigint(11);
结果:
② 修改属性:
alter table 表名 modify 列名 数据类型;
[例]修改student表中tel的数据类型为varchar
alter table student modify tel varchar(11);
③ 删除:
alter table 表名 drop 列名;
[例]删除student表中的tel列
alter table student drop tel;
④ 修改列名
修改列名:alter table 表名 change 原列名 新列名 数据类型;
[例]将test2表中的gender列名修改为sex
alter table test2 change gender sex CHAR(2);
2.) drop:删除database和tabled
① 删除库:
drop database 数据库名;
[例]删除new_test数据库
drop database new_test;
② 删除表:
drop table 表名;
[例]删除test2表
drop table tablename;
3) insert: 插入数据
① 单行插入
语法:
insert into 表名(属性1,属性2,....) values(值1,值2,.....);
【例】向collage表中插入数据,xno为1001,cname为社会学,loc为成都
insert into collage(xno,cname,loc) values(1001,'社会学','成都');
注意:如果想表中所有属性添加值,表后可以不用谢属性名,如:
insert into collage value(1002,"商品学","重庆");
② 一次性插入多行数据
语法:
insert into 表名(属性1,属性2,....) values(值11,值12,.....),(值21,值22,.....),(值31,值32,.....),.....;
如向collage多行插入
insert into collage values(1003,'英语系','成都'),(1004,'计算机系','成都');
如向srudent表中插入数据
单行全部插入:
insert into student values(95004,'王小明',19,'F','1999-07-03',1001,'95');
多行部分列插入
insert into student(sno,sname,age,sex,xno,grade) values(
95006,'黄大鹏',20,'M',1002,'95'),
(95008,'张文斌',18,'F',1003,'95');
4) update:更新数据
语法:
update 表名 set 列名=值 [where 条件];
【例】将黄大鹏的生日更新为1998年12月24日
#不加where条件,更新整张表的birthday列的值。
update student set birthday = '1998-12-24';
#用where条件,只更新where条件指定行的birthday列的值。
如只修改sno为95004的生日
update student set birthday = '1999-07-03' where sno = 95004;
5)delete:删除数据
语法:
注意:省略where条件语句同上,删除整张表的数据
语法:delete from 表名 [where 条件];
delete from collage;
如只删除xno=1004这行数据
delete from collage where xno = 1004;
6)修改表名
使用rename修改表名
语法:
rename table 原表名 to 新表名;
使用用alter 修改表名
语法:
alter table 原表名 rename 新表名;
① Mysql- Create/表操作语句相关推荐
- mysql多表操作语句_MYSQL数据库语句之多表操作(三)
多表操作 join查询(join按照功能分可以分为3类): cross join(交叉连接):获取多个表中的交叉关系. inner join(内连接):获取2个表中字段匹配关系的记录. 外连接 lef ...
- 数据库 MySQL 之 表操作、存储引擎
数据库 MySQL 之 表操作.存储引擎 浏览目录 创建(复制) 删除 修改 查询 存储引擎介绍 一.创建(复制) 1.语法: 1 2 3 4 5 CREATE TABLE 表名( 字段名1 ...
- mysql数据表操作_MySQL数据表基本操作实例详解
本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...
- CDA数据分析师 - SQL数据库基础 数据类型表操作语句
SQL 基础概念 [领会] 关系型数据库基本概念 表的基本概念(字段.记录) 表的约束条件(主键.外键.非空.唯一.自增.默认值) 实体关系图(E-R 图) ANSI-SQL 以及不同的数据库实现的关 ...
- 关于MySQL分表操作的研究
关于MySQL分表操作的研究 一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法.首先,我们需要想好到底分多少个表,前提当然是满足应用.这里 ...
- mysql单表备份语句
mysql单表备份语句 mysql单表备份 SELECT CONCAT("mysqldump -uroot -p123456 ",table_schema," " ...
- mysql单表备份语句 +多表
mysql单表备份语句 mysql单表备份 SELECT CONCAT("mysqldump -uroot -p123456 ",table_schema," " ...
- MYSQL数据库表操作pdf
<MYSQL数据库表操作pdf> 下载地址: 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731023.html
- 【MySQL多表操作练习】
多表操作练习 > > > MySQL基础 > > > MySQL的多表操作查询 > > > MySQL多表操作练习 > > > ...
- mysql联表查询语句示例
mysql联表查询语句示例 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 示例: "sele ...
最新文章
- 电子商务创造的第二次产业机会
- codeforces水题100道 第五题 Codeforces Round #304 (Div. 2) A. Soldier and Bananas (math)
- 数据仓库系列篇——唯品会大数据架构
- PHP设计模式之:单例模式
- oracle 备份教研归档失败,归档日志丢失造成Rman备份失败解决办法
- 【elasticsearch】 document 查询原理
- 优先级管理器 IPriorityManager -- ESBasic 可复用的.NET类库(14)
- 机器学习笔记 - 什么是标准正态分布表?
- oracle优化方法,九大Oracle性能优化基本方法详解
- 中国大学MOOC行为金融学及答案
- 和机器人问问题的软件_如何开发一个特定领域的自动问答机器人(Chat Bot)?
- php怎么画五星红旗,php基于GD库画五星红旗的方法,phpgd库五星红旗_PHP教程
- python统计闰年的个数_python 闰年数
- 黎曼猜想--黎曼1859年《论小于某给定值的素数的个数》
- Halcon 毛刺检测
- 关于MAC安装windows【支持老版本】 支持安装全系列windows
- 斑马打印机打印中文乱码的问题
- HTML+CSS+JavaScript+Ajax+ECharts实现疫情实时监控大屏-2设计与实现
- iframe的常用方法
- 基于SSM的音乐视频网站的设计与实现
热门文章
- 程序人生:我,颓废3年,怒加薪26K:成年人最顶级的自律,是逆着人性做事
- java 僵尸进程_神奇的Java僵尸(defunct)进程问题排查过程
- java面试题_度小满一面_java面经汇总
- 如何使用逆分布函数模拟MEDIAN()聚合函数
- 世界知名洋酒种类及酒具的使用
- Mac wifi 卡死
- 使用Python开发一个恐龙跳跳小游戏,玩起来
- Ubuntu桌面版高版本无法更新软件:Unmet Dependencies
- Dell电脑搭配Win10休眠 = 黑屏
- Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN