MySQL学习(一、概述和表的基本操作)
一、数据库概念
数据库(Database:DB):数据库是按照数据结构来组织、存储和管理数据的仓库--->数据库其实就是磁盘中的文件+管理系统
数据库管理系统(Database Management System:DBMS)是专门用于管理数据库的计算机系统
软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能。并完成
对数据完整性、安全性进行控制的功能
=======================================================
二、SQL:结构化查询语言(Structured Query Language)
关系型数据库标准语言,特点:简单,灵活,功能强大
SQL包含6个部分(*号表示常用):
1.数据查询语言(DQL query)*
其语句也称为“数据检索语言”,用以从表中获取数据,确定数据怎样在应用程序中输出,关键字 SELECT(查询)是DQL(也是所有SQL)用的最多的动词,其他DQL常用的关键字有WHERE(用来限制字 段),ORDER BY(排序),
GROUP BY(分组)和HAVING(分组后排序)。这些DQL关键字常与其他类型的SQL语句一起使用。
2.数据操作语言(DML manipulation)*
其语句包括动词INSERT,UPDATE和DELETE,它们分别用于添加,修改和删除表中的行,
也称为动作查询语言(SELECT查询和INSERT查询有什么区别?)
3.事务处理语言(TCL)
它的语句能够确保被DML语句影响的表所有行及时得到更新,TPL语句包括BEGIN TRANSACTION,
COMMIT(事务提交)和ROLLBACK(事务回滚)
4.数据控制语言(DCL)
它的语句通过GRANT和REVOKE获得许可,确定单个用户和用户组对数据库对象的访问,某些RDBMS
可用GRANT和REVOKE控制对表单个列的访问
5.数据定义语言(DDL definition)*
其语句包括动词CREATE(创建)和DROP(删除),在数据库中创建新表和删除表,为表加入索引等。
DDL包括许多与人数据库目录中获得数据有关的关键字,它也是动作查询的一部分
6.指针控制语言(CCL)
它的语句,像DECLARE CURSOR,FETCH INTO 和UPDATE WHERE CURRENT用于对一个
或多个表单独进行的操作
======================================================
三、SQL编写规则:
1.在数据库中,SQL语句不区分大小写
2.SQL语句可以单行也可以多行写
3.在SQL语句中,关键字不能多行或缩写
4.为了提高可读性,关键字一般大写,其他小写
5.空格和缩进使程序易读
6.SQL不需要加分号,但是程序员在语句后加分号是一个好习惯
四、什么是表?
我们说MySQL是一种关系型数据库,关系型数据库最重要的概念就是表,表具有固定的列数和任意的行数,在数学上称为“关系”二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录,表中的列属性,称为Field,相当于通常记录中的一个数据项,也叫做列、字段。
面向对象的类,类似于关系型数据库中表的概念
ORM思想:对象-关系映射
类 | 表 |
---|---|
属性 | 列 |
对象 | 一行数据 |
五、数据库操作和存储引擎
数据库对象:存储、管理和使用数据的不同结构形式,如:表、视图、存储过程、函数、
触发器、事件等。数据库:存储数据库对象的容器
数据库分为两种:系统自带的,和用户自定义数据库
常用数据库命令:
show databases; 查看数据库
use dName; 使用数据库
show tables; 查看表
create database dName 创建数据库
drop database dName 删除数据库
六、Mysql数据常用类型
MySQL以一个可选的显示宽度指示器的形式对SQL标准进行扩展,这样当数据库检索一个值时,可以把这个值加长到指定长度需要注意,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围,一般不用指定位宽
整数类型
INT | int/Integer |
BIGINT | long/Long |
int(2),在检索时,长度会加长到2,不代表最大存储99,仅仅是查询时,使用两个0占位
小数类型
FLOAT | float/Float |
DOUBLE | double/Double |
money(5,2):整数和小数一共5位,其中小数占两位,最大999.99最小-999.99
字符类型
CHAR | 定长字符型,0-255字节 | String/StringBuid |
VARCHAR | 变长字符型 | StringBuffer |
TEXT | 纯文本 |
定长和变长:字节数的占用问题CHAR(5),VARCHAR(5),存‘1’,CHAR五个字节,VARCHAR1个字节
日期类型
DATE | 0000:00:00 | Date/Calender |
TIME | 00:00:00 | |
DATETIME | 0000:00:00 00:00:00 | |
TIMESTAMP | 时间戳(1970-01-01 00:00:00差) |
二进制类型 (用的很少)
BINARY\VARBINARY\TINYBLOB\BLOB\MEDIUMBLOB\LONGBLOB 存放图形、声音、影响、二进制对象 *:一般将二进制的文件保存路径存储在数据中
BIT | boolean |
七、表的操作
创建表
CREATE TABLE 表名(
colName1 type1 [约束]
colName2 type2,
colName3 type3
);
ex:创建一张学生信息表
create table t_student(
id int;
name varchar(20);
age int;
);
为了避免使用到关键字,我们还可以将名字用` `圈起来
CREATE TABLE `t_stu` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
`age` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
查看表的结构
desc tName;
查看表的详细定义(查看表的定义SQL语句)
show create table tName;
删除表
drop table tName;
表的约束(针对某列而言)
1.非空约束:NOT NULL,不允许字段的内容为空
2.设置列的默认值:DEFAULT
3.唯一约束:UNIQUE,在该表中,该列的内容必须唯一
4.主键约束:PRIMARY KEY,非空且唯一
主键设计,唯一标识某一行数据
5.主键自增长:AUTO_INCREMENT,从1开始,步长为1
6.外键约束:FOREIGNKEY,A表中的外键列,A表中的外键列的值必须参照于B表中的某一列(B表的主键)
*注意:主键的设计
1.单字段主键:单列作为主键,建议使用
复合主键:使用多列字段当主键,不建议
2.主键的种类:
1).自然主键:使用有业务含义的列作为主键(不建议使用),例如身份证号码
2).代理主键:使用没有业务含义的列作为主键
CREATE TABLE `t_student`(
`id` INT PRIMARY KEY; //主键,非空且唯一
` name` VARCHAR(20) UNIQUE NOT NULL; //非空且值唯一
`age` INT DEFAULT 100; //默认值100
);
八、MYSQL小结
1.MySQL安装和配置(存储引擎,字符编码,密码)
2.常用命令
1)查看有哪些数据库
show databases;
2)使用某一个数据库
use dName;
3)查看某个数据库中有什么表
show tables;
4)创建和删除一个数据库
create database dName;
drop database dName;
5)创建和删除表
create table tName(colName1 type1 [约束],colName2 type2 [约束],colName3 type3);
drop table tName;
MySQL学习(一、概述和表的基本操作)相关推荐
- MySQL学习_数据库和表的基本操作
目录 1 创建和查看数据库 1.1 创建数据库 1.2 查看数据库 1.3 修改数据库 1.4 删除数据库 2 数据类型 2.1 整数类型 2.2 日期数据类型 2.3 字符串数据类型 3表的基本操作 ...
- MySQL学习记录(导入Excel表到数据库,并筛选条件输出)
附上:重置mysql账号密码方法 ubuntu系统下mysql重置密码和修改密码操作 - skh2015java的博客 - CSDN博客(改完重启,登录mysql要root/sudo权限) Cento ...
- (一)alin‘s mysql学习笔记----概述
最近进一步学习的mysql的相关知识,将学习内容汇总于此,主要分八个章节,依次为: mysql的存储引擎 Mysql常用的join连接查询 索引简介 索引性能分析 索引失效及索引优化 Sql查询优化 ...
- mysql新增阵列df_DF学Mysql(二)——数据表的基本操作
1.创建数据表 先使用"USE "指定在哪个数据库中操作 CREATE TABLE ( 字段1 数据类型 [列级别约束条件] [默认值], 字段2 数据类型 [列级别约束条件] [ ...
- mysql学习笔记14 多表查询初步
对数据分组的总结 举例:统计各个部门的平均工资,并且是大于1000的,并且按照平均工资从高到底排序 mysql> select avg(stsal) as myavgsal, stdepno f ...
- mysql 学习笔记03修改表以及其他操作
首先创建一张表 在现有表的结构上增加字段 alter table users add image varchar(100) not null defalut '' comment '图片路径'; 修改 ...
- mysql 学习笔记 02创建表
表结构的创建 比如: create table userinfo (id int unsigned comment 'id号'name varchar(60) comment '用户名'passwor ...
- MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记06【多表查询、子查询、多表查询练习】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记05【多表操作、三大范式、数据库的备份和还原】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
最新文章
- CSS(2 )-- CSS样式大全
- 抽象:程序员必备的能力
- STM32学习笔记之__attribute__ ((at())绝对定位分析
- 洛谷 P2731 骑马修栅栏 Riding the Fences
- [转发] 【GRT安智网】HTC安致手机ROM国内首个中文定制教程goapk首发[最新厨房V0......
- IIs+php 最精简的环境配置
- jsp文件能转换html吗,html怎么转换成jsp
- Silverlight 动态调用 WebService
- USACO-Section2.1 The Castle (深度优先搜索)
- WITH ROLLUP、WITH CUBE、GROUPING语句的应用
- 无法添加外键约束的原因(cannot add foreign key constraint)
- 牛津3000释义词典_常见英语词典集锦
- 计算机按电源键无法反应,电脑无法开机怎么办 按电脑开机键也没反应的原因及处理解决办法...
- Android双系统实现
- 智能指针的标准之争:Boost vs. Loki (转载)
- CSS设置背景图像的属性
- Java开源生鲜电商平台-深刻理解电商的库存架构与解决方案(源码可下载)
- 近在身边的神秘卫士——月球
- Java中创建线程的三种方式
- 英语口语269之每日十句口语