数据库——数据库表和表的操作
每日一讲
SQL语句
SQL语句分类
SQL书写规范
数据库操作
查看
创建
MySQL字符集
ci大小写不敏感,cs大小写敏感,
在Linux下配置MySQL
utf8与utf8mb4的区别
数据库对象
表的基本操作
创建表
创建部门表
表物理存储结构
查看表
查看表结构
删除表
修改表的结构
复制表的结构(必须搞定)
数据类型
text类型:
number类型:int、bigint、float、double、decimal
数据库字典
表的约束(重要知识点,必须需要掌握)
每日一讲
1.复习知识点并且卸载docker的问题
docker相比于虚拟机来说体量小,虚拟机体量大,docker相当于一个容器
卸载docker的办法,记得删除目录中的文件再进行删除docker
SQL语句
sql语句,结构化查询语言,不同厂商的sql语句有一丢丢不同,但是几乎是如出一辙的,主要用于存储数据,更改结构,系统安全设置,检索信息,更改用户许可权限,信息更新等。
SQL语句分类
1)DDL:数据定义语言 关键字有:create(创建),drop(删除) ,truncate(删除表结构,再创一张表),alter(修改)------(关于信息的生死操作)
2)DQL:数据查询语言 关键字有:select打交道最多的就是select
3)DML:数据操作语言 关键字有:insert(插入),update(更改),delete(删除)
4)TCL:事务控制语言 关键字有:begin,savepoint,rollback,commit非常重要,维护数据库统一性
5)DCL:数据控制语言 关键字有 :grant,revoke,deny创建用户,对用户授予权限
SQL书写规范
1、大小写都是一样
2、用‘;’结束语句
3、关键词不能跨多行书写或者简写
3、SQL标准:1、/**/多行注释
2、“--”单行注释
MySQL注释: "#"
数据库操作
查看
latin1支持西欧字符、希腊字符等
gbk支持中文简体字符
big5支持中文繁体字符
utf8几乎支持世界所有国家的字符。
下划线匹配单个字符 mysql自带数据库
查看
show databases
创建
1.经常性的是直接创建数据库
基本字符集 :utf8
2.也可以通过语句直接创建数据库
创建数据库
create database databasedemo002 ;
查看创建数据库
show create database databasedemo002(数据库名);
详细创建数据库
create database databasedemo003 default character set utf8 collate utf8_general_ci;
删除数据库
drop database databasedemo003;
切换数据库
use databasedemo001;
操作时一定要知道自己在那个数据库里
查看当前数据库
select database();
查看当前版本
select version();
查看当前用户
select user();
查看所有用户
select user,host,password from mysql.user;
MySQL字符集
查看当前sql所支持的字符集
show variables like ‘character%’;
查看所支持的所有校验规则
show collation;
ci大小写不敏感,cs大小写敏感,
在Linux下配置MySQL
在etc目录下编辑my.cnf有一些基本设置,default-character--set+utf8适合5.1以及以前版本;(课堂笔记)并将增加在my.cnf的mysql下面增加,然后重启mysql,则systemctl restart mysqld.service
utf8与utf8mb4的区别
mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了
数据库对象
1、必须以字母开头
2、可以包括数字和三个特殊符号(#_$)
3、不使用mysql保留字
4、不重名
关系就是通过约束来保持数据库的一致性;视图就是不同的人看到不同的数据,不同的视图;索引是为加快数据库的性能
表的基本操作
创建表
1.根据语法创建表
标准数据库的语法
CREATE TABLE [schema.]table
(column datatype[DEFAULT expr] ,
…
) ENGINE = 存储机制 engine(存储yinqin)以后的可以省略后边是可以做更多的设置
2.直接创建表主键就是不允许重复的,zerofill可以用0进行填充指最大长度,注释尽可能加上,如果没有规范的就尽量加上注释,行业不一样,字段不一样(养成良好习惯)auto就是自动的;
创建部门表
部门标号为主键,f9为执行
表物理存储结构
cd /var/lib/mysql/mysql
ls -l user*查询表
数据类型
区别比较明显,类型长度和大小不一样,字符型用的比较多,大对象存储图像
text类型:
数据类型 | 描述 |
---|---|
CHAR(size) | 保存固定长度的字符串(可包含字母、数字以及特殊字 符)。在括号中指定字符串的长度。最多 255 个字符。 |
VARCHAR(size) | 保存可变长度的字符串(可包含字母、数字以及特殊字 符)。在括号中指定字符串的最大长度。最多 255 个字 符。 注释:如果值的长度大于 255,则被转换为 TEXT 类型。 |
TINYTEXT | 存放最大长度为 255 个字符的字符串。 |
TEXT | 存放最大长度为 65,535 个字符的字符串。 |
BLOB | 用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。 |
MEDIUMTEXT | 存放最大长度为 16,777,215 个字符的字符串。 |
MEDIUMBLOB | 用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。 |
LONGTEXT | 存放最大长度为 4,294,967,295 个字符的字符串。 |
LONGBLOB | 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。 |
ENUM(x,y,z,etc.) | 允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。 注释:这些值是按照你输入的顺序存储的。 可以按照此格式输入可能的值: ENUM('X','Y','Z') |
SET | 与 ENUM 类似, SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值。 |
number类型:int、bigint、float、double、decimal
数据类型 | 描述 |
---|---|
TINYINT(size) | -128 到 127 常规。 0 到 255 无符号*。在括号中规定最 大位数。 |
SMALLINT(size) | -32768 到 32767 常规。 0 到 65535 无符号*。在括号中 规定最大位数。 |
MEDIUMINT(size) | -8388608 到 8388607 普通。 0 to 16777215 无符号*。在 括号中规定最大位数。 |
INT(size) | -2147483648 到 2147483647 常规。 0 到 4294967295 无 符号*。在括号中规定最大位数。 |
BIGINT(size) | -9223372036854775808 到 9223372036854775807 常规。 0 到18446744073709551615 无符号*。在括号中规定最大位 数。 |
FLOAT(size,d) | 带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。 |
DOUBLE(size,d) | 带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。 |
DECIMAL(size,d) | 作为字符串存储的 DOUBLE 类型,允许固定的小数点。 |
注意:这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED属性,那么范围将从 0 开始,而不是某个负数。
date类型:应用的都挺多,都要记住
数据类型 | 描述 |
---|---|
DATE() | 日期。格式: YYYY-MM-DD 注释:支持的范围是从 '1000-01-01' 到 '9999-12-31' |
DATETIME() | 日期和时间的组合。格式: YYYY-MM-DD HH:MM:SS 注释:支持的范围是'1000-01-01 00:00:00' 到 '9999-12- 31 23:59:59' |
TIMESTAMP() | 时间戳。 TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式: YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC |
TIME() | 时间。格式: HH:MM:SS 注释:支持的范围是从 '-838:59:59' 到 '838:59:59' |
YEAR() | 2 位或 4 位格式的年。 注释: 4 位格式所允许的值: 1901 到 2155。 2 位格式所允许 的值: 70 到69,表示从 1970 到 2069 |
常用的数据类型都要记住
查看表
查看表结构
直接查看和通过语句查询表结构
describe dept;
describe employee;
show columns from dept;
show create table dept;/**/可以查看创建表的语句
删除表
drop table student;如果还在刷新一下就没了
drop table if exits account;
修改表的结构
1、直接进行修改
2、通过sql语句进行修改表的结构
修改列类型
alter table dept modify dept_desc varchar(100);修改列类型,修改长度为100
增加列
alter table dept add dept_company varchar(50);多了一个字段
删除列
alter table dept drop dept_company;
修改列的名字
alter table dept change dept_desc dept_description varchar(100);
对表的重命名
alter table dept rename depts;
rename table depts to dept;将depts重新命名为dept
复制表的结构(必须搞定)
三种方法:
1、先创建一个新表与dept拥有相同结构
create table depts like dept;只拷结构不拷数据
2、创建表的备份(备份的洗表表事先不存在)
create table deptss select * from dept;
3、已经创建表,并且将数据导入另外一张表(表事先存在)
insert into depts select * from dept;将dept的数据拷贝到depts中
数据库字典
由information_schema数据库负责维护
tables-存放数据库里所有的数据表、以及每个表所在数据库。
schemata-存放数据库里所有的数据库信息
views-存放数据库里所有的视图信息。
columns-存放数据库里所有的列信息。
triggers-存放数据库里所有的触发器。
routines-存放数据库里所有存储过程和函数。
key_column_usage-存放数据库所有的主外键
table_constraints-存放数据库全部约束。
statistics-存放了数据表的索引。
表的约束(重要知识点,必须需要掌握)
维护数据的一致性,尽可能降低数据的冗余(数据的重复),要求数据出现唯一性,比如人的身份证号,取值范围例如年龄,数据参照例如学生表以及成绩表,记录时要求姓名与成绩相匹配,不匹配时就是一个无效的数据,主键约束(数据唯一性,主键的列不是描述业务字段,记录编号,记录实现唯一性),非空约束(值不能为空的,必须要有值),唯一约束性(唯一性,相当于产品比编号),外键约束(体现数据依赖性,有参照),检查约束,默认值约束。
数据库——数据库表和表的操作相关推荐
- SQL2K数据库开发六之表操作创建产品表products
1.在SQL Server企业管理器中的数据库下的"表"节点上右击鼠标,在弹出的菜单上点击"新建表". 2.在出现的表设计器中,为表中加入五个列:Product ...
- SQL2K数据库开发十一之表操作创建UNIQUE约束
1.在数据库关系图中右击表Products,然后从弹出的菜单中选择"属性"命令.或者点击工具栏上的属性图标. 2.或者展开sample数据库,在表Products上 ...
- SQL2K数据库开发八之表操作创建主键
1.使用Transact-SQL语句在表中创建主键时,可以在创建表的语句中定义列时使用如下语法: 2.在查询分析器中输入如下的语句,可以创建一个表Suppliers,该表中的SupplierID列被定 ...
- 6.(Mysql数据管理相关)连接MYSQL,修改密码,增加新用户,数据库相关命令,表操作相关命令,数据相关命令,数据库sql导入和导出,备份数据库,查看不到mysql数据库的解决办法
mysql安装完之后,登陆后发现只有两个数据库:mysql>show databases; +--------------------+ | Database | +- ...
- java 从数据库取值_JAVA操作数据库--从一张表中取值,经过判断,然后插入另一张表中。...
JAVA操作数据库-->从一张表中取值,经过判断,然后插入另一张表中. SQL语句如下:两张表 weather 和 weather_process. id均为自动增长.Oracle中采用序列 S ...
- MySQL基础(二)数据库、表的创建及操作
这一部分主要使用SQL中的DDL,数据库定义语言(data definition language),对数据库,表进行新建,修改,和删除. 数据库(database) 显示所有数据库 SHOW DAT ...
- mysql 横纵表转化_数据库MySQL横纵表相互转化操作实现方法
本文实例讲述了MySQL横纵表相互转化操作实现方法.分享给大家供大家参考,具体如下: 先创建一个成绩表(纵表) create table user_score ( name varchar(20), ...
- 分布式列数据库--理解hbase列存储机制、架构、表结构设计、命令操作
1. HBase简介 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库. HBase和HDFS HDFS适用于存储大容量文件的分布式文件系统,不 ...
- 【数据库】第一章 数据库的分类、SQL、数据库、表和表记录的常用操作
[数据库]第一章 数据库的分类.SQL.数据库与表的常用操作 文章目录 [数据库]第一章 数据库的分类.SQL.数据库与表的常用操作 一.数据库的分类 1.关系型数据库 2.非关系型数据库 3.MyS ...
- 广州大学数据库实验报告_广州大学学生Access数据库实验1_表的创建和操作
学院 工商管理 年级.专 业.班 人力 152 姓名 学号 实验课程名称 数据库技术及应用 II 成绩 优 实验项目名称 表的创建和操作 指导 老师 一.实验目的 1. 掌握 Access 2007 ...
最新文章
- 【Zookeeper】源码分析之Leader选举(一)
- 从 Domino 7.x 升级到 Domino 8.0.1 后服务器性能下降
- 搭建Hexo部署到github上
- python制作验证码_Python编写生成验证码的脚本的教程
- LeetCode-链表-206. 反转链表
- ffmpeg利用libav库把yuv视频流转换为TS串流
- android中白色怎么表示,通知栏图标在android 5中变成白色
- c++输出txt格式循环一组数据后换行再循环一次_numpy、pandas以及用pandas做数据分析的案例...
- chrome浏览器fitler中的XHR作用是什么
- python中isalpha()、isdigit()、isalnum()、isupper()、islower()的含义、区别和细节
- 判断二极管导通例题_如何判断开关电源变压器的好坏
- 如何屏蔽电脑微信自动更新
- Python 学习2-元组、字符串
- 今日恐慌与贪婪指数为20 恐慌程度有所上升
- 如何阅读一本专业书?
- 下列有关预防计算机病毒的做法或想法,Windows7试题
- Lucene 7.5.0 索引文件之liv
- C语言实现大计基作业之某种图灵机
- 数加加众包:奔驰“哭诉维权”美女硕士,你“不要脸”的样子真的很美
- MySQL启动服务提示:某些服务在未由其他服务或程序使用时将自动停止