MySQL(2)— 数据库的基本操作
二、数据库
2-1、操作数据库(了解)
1、创建数据库
CREATE DATABASE [IF NOT EXIST] myDatabase;
2、删除数据库
DROP DATABASE `myDatabase`; -- 加反引号,表示字符串,防止和 mysql 关键字冲突
3、使用数据库
USE myDatabase;
4、查看数据库
SHOW myDatabase;
2-2、数据库的列类
数值
tinyint 十分小的数据 1个字节
smallint 较小的数据 2个字节
mediumint 中等大小的数据 3个字节
int 标准的整数 4个字节 (常用的java中的int)
bigint 较大的数据 8个字节
float 浮点数 4个字节
double 浮点数 8个字节 (精度问题)
decimal 字符串形式的浮点数 金融计算的时候使用
字符串类型
char 字符串,固定大小的 0-255
varchar 可变字符串,0-65535 常用的 String
tinytext 微型文本 2^8-1
text 大型文本 2^16-1
时间日期
java.util.Date
- data YYYY-MM-DD 日期格式
- time HH : mm : ss 时间格式
- datetime YYYY-MM-DD HH : mm : ss 最常用的时间格式
- timestamp 时间戳,1970-1-1 到当前时间的毫秒值
- year 年份表示
null
- 没有值,未知
- 不要使用NULL进行运算,结果为NULL
2-3、数据库的字段属性(重点)
Unsigned:
- 无符号整数
- 声明了该列的值,不能为负数
zerofill:
- 零填充
- 不足的位数,用0 填充。例如: int(3) , 5 -- 005
自增:
- 自动在上一条记录的基础上加1(默认)
- 通常用于设计唯一的主键 id,必须是整数类型
- 可以自定义主键自增的起始值和步长
非空:
- 设置了非空 not null,则意味着不给赋值,会报错
- null,不写默认是null
默认:
- 设置默认的值
- 例如性别:不指定的话,给个默认的性别
2-4、数据库表的创建(DDL)
-- 注意事项:表的名称 和 字段,尽量用反引号 `` 包起来,防止和mysql 关键字冲突,也方便自己阅读
-- auto_increment 自增 , not null 不为空,default 默认值 , comment 注释
-- 字符串使用 单引号 '' ,和java不同
-- primary key ('id') 写在最后,可读性高
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 -- 使用 innodb引擎,utf-8字符集
格式
CREATE TABLE [IF NOT EXIST] `表名`(
`字段名` 列类型 [字段属性] [索引] [注释],
)[表类型][字符集][注释]
常用命令
SHOW CREATE DATABASE `数据库名` -- 显示创建语句
SHOW CREATE TABLE `表名` -- 显示创建语句
DESC `表` -- 查看表的具体结构
2-5、数据库表的类型
-- 关于数据库引擎
-- MYISAM 早期
-- INNODB 现在默认使用
MYIAM | INNODB | |
---|---|---|
事务 | 支持(以前不支持) | 支持 |
数据行的锁定 | 不支持(表级锁) | 支持(行级锁) |
外键 | 不支持 | 支持 |
全文索引 | 支持 | 支持(从MySQL5.6版本开始支持) |
表空间大小 | 较小 | 较大,约为MYISAM的两倍 |
常规使用操作:
- MYISAM : (1)做很多count的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。
- INNODB : (1)可靠性要求比较高,或者要求事物;(2)表更新和查询都相当频繁,并且行锁定的机会比较大的情况。
设置数据库表的字符集编码
- 建表的时候,CHARSET=UTF8(推荐,通用性高)
- 在 my.ini 中设置默认的字符集编码
2-6、数据库表的修改
-- 修改表名 ALTER TABLE `旧表名` RENAME AS `新表名`
ALTER TABLE `STUDENT` RENAME AS `STUDENT1`
-- 表中添加字段 ALTER TABLE `表名` ADD 字段名 列属性(约束)
ALTER TABLE `STUDENT` ADD age INT(10)
-- 修改表 约束 ALTER TABLE `表名` MODIFY 字段名 列属性(约束)
ALTER TABLE `STUDENT` MODIFY age VARCHAR(10)
-- 修改表 字段名,约束 ALTER TABLE `表名` CHANGE 旧字段名 新字段名 [列属性(约束)]
ALTER TABLE `STUDENT` CHANGE age age1 INT(10)
-- 删除表 字段名 : ALTER TABLE `表名` DROP 字段名
ALTER TABLE `STUDENT` DROP age1
CHANGE 既可以改字段名又可以改约束,MODIFY 只能改约束!
2-7、数据库表的修改
删除
DROP TABLE IF EXIST `表名`
注意点:
- 字段名,表名,最好用 `` 包裹
- 删除,创建操作,尽量加上 IF EXIST ,防止报错,类似于Java的 if ( xxx != null )
- sql 关键字不区分大小写,但是我们用小写,还是一眼能认识
- 所有符号用英文,同Java
MySQL(2)— 数据库的基本操作的更多相关文章
- MySQL:数据库的基本操作
第二篇.数据库的基本操作 一.创建数据库 附:创建数据库并不意味输入数据在这个数据库中,只有用切换数据库才可以输数据到这个数据库中. 1.创建数据库 格式:create database数据库名字 [ ...
- Python学习第二十一课——Mysql 对数据库的基本操作
数据库操作(DDL) 在数据库下创建表(create_table) 创建表代码块: CREATE TABLE employee( id TINYINT PRIMARY KEY auto_increme ...
- mysql数据库的基本操作
mysql数据库的基本操作dos命令启动mysql服务:net start mysql启动数据库: mysql -uroot -p查看所有的数据库:show databases:新建数据库:creat ...
- MySQL(一) 数据表数据库的基本操作
序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...
- mysql 数据库(二)数据库的基本操作
mysql 数据库(二)数据库的基本操作 用户管理,添加权限,创建,显示,使用数据库 1 显示数据库:show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于 ...
- MYSQL之数据库初识、安装详解、sql语句基本操作
目录 MYSQL之数据库初识及安装详解 1.什么是数据库? 1.什么是数据?(data) 2.什么是数据库?(databases,简称DB) 2.为什要用数据库? 3.什么是数据库管理系统?(Data ...
- MySQL数据库起步 关于数据库的基本操作(更新中...)
mysql的基本操作 连接指定的服务器(需要服务器开启3306端口) mysql -h ip地址 -P 端口号 -u 账号 -p 密码 删除游客模式 mysql -h ip地址 -P 端口号 -u 账 ...
- 通过sql语句对MySql数据库的基本操作
一.数据库的基本操作 CREATE DATABASE mybookstore; DROP DATABASE mybookstore; 二.表的基本操作 1.创建表 insert into 表名(字段名 ...
- Mysql系列-数据库
一 .数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组 ...
- ThinkPhp框架对“数据库”的基本操作
框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ...
随机推荐
- FluentAspects -- 基于 Fluent API 的 Aop
FluentAspects -- 基于 Fluent API 的 Aop Intro 上次我们做了一个简单的 AOP 实现示例,但是实现起来主要是基于 Attribute 来做的,对于代码的侵入性太强 ...
- Pycharm中设置encoding
在Pycharm专业版中,为了防止文件在别的机器上出现乱码,所以需要进行字符编码的设置. 首先在Pycharm中的View中将下图中的Toolbar打上勾. 接着,工具栏就会出现,选中settings ...
- DM 源码阅读系列文章(六)relay log 的实现
2019独角兽企业重金招聘Python工程师标准>>> 作者:张学程 本文为 DM 源码阅读系列文章的第六篇,在 上篇文章 中我们介绍了 binlog replication 处理单 ...
- 源码阅读:Masonry(三)—— MASViewAttribute
该文章阅读的 Masonry 的版本为 1.1.0. 这个类我们可以叫它"约束视图及其属性类",它封装了设置约束的视图和其设置约束的属性,也就是 view1 和 attr1,或是 ...
- 求x>0时,y=x^3-6x^2+15的极值
解: 当x→∞时,y也→∞,所以y没有最大值. y=x3-6x2+15=-4*(x/2)*(x/2)*(6-x)+15 而根据几何平均数小于等于算术平均数的定理,(x/2)*(x/2)*(6-x)在x ...
- ln命令:软链接与硬链接的区别与应用
ln命令:软链接与硬链接的区别与应用 摘要 Linux系统中,链接是一个十分常见且实用的文件处理命令,它分为软链接和硬链接两种类型.软链接类似于Windows中的快捷方式,硬链接又有着与原文件保持同步 ...
- python的with
with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源. 比如文件使用后自动关闭.线程中锁的自动获取和释放等. with open('test.t ...
- ASP .NET Core 建立列表和表单View
前几篇文章对控制器Controller以及布局页_Layout相关的代码与作用介绍了一下.接下来就是建立控制器对应的列表和对应的表单. 建立Department文件夹,在文件夹下面建立普通的Index ...
- CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355
Scrum 是敏捷开发流派中最著名和最落地的一支,全球 70% 以上公司的敏捷转型都是以 Scrum 起步.CODING 特邀敏捷顾问.CST & CTC 认证敏捷教练申健老师将在本课程< ...
- CTF-Pwn-[BJDCTF 2nd]diff
CTF-Pwn-[BJDCTF 2nd]diff 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非 ...