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框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ...
随机推荐
- Bogon
Definition - What does Bogon mean? A bogon is an bogus IP address from the bogon space, which is a s ...
- 聊聊flink的BlobStoreService
序 本文主要研究一下flink的BlobStoreService BlobView flink-release-1.7.2/flink-runtime/src/main/java/org/apache ...
- Vue Cli 3 报错:router is not defined
报错内容: 报错原因: 代码全部放在了路由配置的main.js文件里,router没有定义,使用的时候报undefined 解决方法: 把router.beforeEach放在main.js里面
- Algs4-2.1.17动画-选择排序
2.1.17动画.修改插入排序和选择排序的代码,使之将数组内容绘制成正文中所示的棒状图.在每一轮排序后重绘图片来产生动画效果,并以一张"有序"的图片作为结束,即所有圆棒均已按照高度 ...
- XmlSerializer .NET 序列化、反序列化
序列化对象 要序列化对象,首先创建要序列化的对象并设置其公共属性和字段.为此,您必须确定要将XML流存储的传输格式,作为流或文件. 例如,如果XML流必须以永久形式保存,则创建一个FileStre ...
- 自定义fastjson对枚举类型的序列化及反序列化过程
通常,fastjson在序列化及反序列化枚举时,一般以下几种策略: 1).根据枚举的name值序列化及反序列化(默认) 2).根据枚举的ordinal序列化及反序列化 3).根据枚举的toString ...
- Linux下实现文件共享配置[samba]
Linux下实现文件共享配置[samba] 第一步:安装samba软件 1.命令:rpm –q samba #查询是否已安装sambayum install samba #使用yum源安装samba, ...
- Android 自定义View—清爽小巧灵活的多节点进度条
前言 最近项目有一个节点进度条的小需求,完成后,想分享出来希望可以帮到有需要的同学. 真机效果图 自定义View完整代码 开箱即用~,注释已经炒鸡详细了 /** * @description: 节点进 ...
- python-圆周率的计算【random库的应用】
圆周率的计算 ...
- P2762 太空飞行计划问题 网络流
题目描述 W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,…,Em},和进行这些实验需要使用的全部仪器的 ...