操作数据库

3 篇文章 0 订阅

1、操作数据库语句

操作数据库> 操作数据库中的表 >操作数据库中表的数据

MySQL数据库关键字不区分大小写

1、创建数据库

create DATABASE [IF NOT EXISTS] library;
[] 中括号代表可选
{} 大括号代表必选

2、删除数据库

DROP DATABASE [IF EXISTS] library  移除数据库

3、使用数据库

USE school

4、查看数据库

SHOW DATABASES

学习思路:

1、对照sqlyog可视化

2、固定的语法或关键字必须要强行记住!

2、数据库的列类型讲解

数值(从小到大)

整数
tinyint    十分小的数据      1字节
smallint   较小数据         2字节
mediumint  中等大小的数据    3字节
int        标准的整数       4字节   常用的
bigint     较大的数据       8个字节  对应Java中的Long

浮点数(小数)
float      浮点数       4个字节
double     浮点数       8个字节(精度问题)
decimal    字符串形式的浮点数     金融计算的时候,无损进行小数计算

字符串
char   字符串固定大小   0-255
varchar  可变字符串    0-65535    常用的变量    对应Java中String
tinytest  微型文本     2^8-1
test     文本串        2^16-1    保存大文本


 
时间日期
java.util.Date

date  YYY-MM-DD  日期格式
time  HH:MM:SS   时间格式
datetime     YYY-MM-DD HH:MM:SS   最常用的时间格式
timestamp  时间戳    1970.1.1到现在的毫秒数  较常用
year   年份表示


null
- 空值
- 注意不要使用null进行计算,结果为都为null

3、数据库的字段属性(重点!)

Unsigned

  • 无符号的整数
  • 不能声明为负数

zerofill

  • 0填充
  • 不足位数,使用0填充 比如int(3) 显示005(3代表3个长度)

自增

  • 通常理解为自增,自动在上一条记录的基础上+1(默认)
  • 通常用来设计唯一的主键 ,可以理解为index(不能重复),必须是整数类型
  • 可以自定义设计逐渐自增的起始值和步长。

非空(NULL 或 NOT NULL)

  • 假设设置为not null,如果不给它赋值就会报错
  • 如果不填值,默认就是Null

默认

  • 设置默认的值
  • 比如sex,默认值为男,如果不指定该列的值,则为默认的值

拓展:听听就好

/* 每一个表,都必须存在以下五个字段!未来做项目用的,表示一个记录存在的意义

id   主键
`version`  乐观锁
is delete  伪删除
gmt_create 创建时间
gmt_update 修改时间

*/

4、创建数据库表(重点!)

4.1、目标:创建一个数据库

创建学生表(列,字段) 使用SQL创建

学号id(int),登陆密码password、姓名name、性别sex、家庭住址、email(varchar),出生日期(datetime),

-- 注意点:使用英文括号(),表的名称和字段尽量使用``括起来
-- AUTO_INCREMENT 自增
-- 字符串使用 单引号括起来
-- 所有语句加英文,最后一个不用加
-- PRIMARY KEY 主键,一般一个表只有一个唯一的主键,一般是id
CREATE TABLE IF NOT EXISTS `student`(
			 `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
			 `name` VARCHAR(30) NOT NULL DEFAULT'无' COMMENT'姓名',
			 `password` VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码',
			 `sex` VARCHAR(2) NOT NULL DEFAULT'男' COMMENT'性别',
			 `birthday` DATE DEFAULT NULL  COMMENT'出生日期',
			 `address` VARCHAR(100) DEFAULT NULL COMMENT'家庭住址',
			 `emaill` VARCHAR(50) DEFAULT null COMMENT'邮箱',
			 PRIMARY KEY(`id`)

)ENGINE=INNODB DEFAULT CHARSET=utf8
  • 格式
CREATE TABLE [IF NOT EXISTS] `表名`(
  `字段名` 列类型 [属性] [索引:比如Index] [注释],
  `字段名` 列类型 [属性] [索引:比如Index] [注释],
  ......
  `字段名` 列类型 [属性] [索引:比如Index] [注释],
)ENGINE=INNODB DEFAULT CHARSET=utf8
 [表类型][字符集设置][注释]
CREATE TABLE `student` (
  `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` varchar(30) NOT NULL DEFAULT '无' COMMENT '姓名',
  `password` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
  `sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',
  `birthday` date DEFAULT NULL COMMENT '出生日期',
  `address` varchar(100) DEFAULT NULL COMMENT '家庭住址',
  `emaill` varchar(50) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • 常用命令
SHOW CREATE DATABASE school   -- 查看创建数据库的语句
SHOW CREATE TABLE student     -- 查看student数据库表的定义语句
DESC student                  -- 显示表的结构
  • 什么是主键(primary key)?

4.2、数据库表的类型

1、关于数据库引擎

INNODB 默认使用

MYSISAM 早些年使用

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持 表锁支持 行锁
外键约束不支持支持
全文索引支持不支持
表空间大小(内存)较小较大,约为MYISAM 2倍
  • 常规使用操作:

1、MYISAM 节约空间,速度较快

2、INNODB 安全性高,支持事务处理,多表多用户操作

在物理空间存在的位置:

  • 所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库
  • 数据库本质还是文件的存储

MySQL引擎在物理文件上的区别

  • INNODB 在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
  • MyISAM 对应文件

1、*.frm 表结构定义文件

2、*.MYD 数据文件(data)

3、*.MYI 索引文件(index)

  • 设置数据库表的字符集编码
CHARSET =utf8

不设置的话,会是MySQL默认的字符集编码(不支持中文!)

MySQL的默认编码是Latin1,不支持中文。

  • 设置中文的2种方式

1、创建数据库时加上CHARSET =utf8

2、在my.ini中配置默认的编码

character-set-server=utf8

4.3、修改删除表

修改

-- 修改表名: ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1

-- 增加表的字段: ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)

-- 修改表的字段 (重命名,修改约束)
-- ALTER TABLE 表名 MODIFY 字段名 列属性[]  -- 修改约束
ALTER TABLE teacher1 MODIFY age VARCHAR(11) 
-- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[] -- 字段重命名
ALTER TABLE teacher1 CHANGE age age1 INT(11) 

-- 删除表的字段:ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1
  • modify和change区别

    同:均可用于alter语句中,修改字段属性;

    异:change可用于字段重命名,句式与modify也不用(多输一个字段名):

    alter table 表名 change 旧字段名 新字段名 字段属性;
    
    alter table 表名 modify 字段名 字段属性;
    

删除

-- 删除表(如果存在再删除)
DROP TABLE IF EXISTS teacher1

所有的创建和删除操作尽量加上判断,以免报错

4.4、注意点

1、所有的字段名用``括起来

2、注释 – 、/**/

3、sql关键字大小写不敏感

4、所有符号用英文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值