数据库之操作数据库

操作数据库

一. 数据库的连接(命令行)
1.连接
mysql -uroot -p+password --直接输入密码可以,或者回车输入都可以
2.修改密码
update mysql.user set anthentication_string=password('123456') where user='root' and Host='localhost'; --修改用户密码
flush privileges; --刷新权限
-------------------------------------
show databases;--查看现在所有的数据库

use mysql;--使用数据库中的表
Database changed;--表示表已经切换

show tables;--显示该数据库下面的所有的表
31 rows in set (0.05 sec)--数据

describe user;--查看表中数据
45 rows in set (0.00 sec)--数据
 
create ....--创建数据库或者建表
/*
多行注释
*/
3.数据库的四种语言

DDL: 数据库定义语言

DQL: 数据查询语言

DML: 数据操纵语言

DCL: 数据控制语言

二. 操作数据库
sql语言关键字不区分大小写
1.创建数据库
CREATE DATABASE [if not EXISTS] saxon;--[]内部的可写可不写,如果在创建的数据库已经有了,那么就报错。
CREATE DATABASE saxon  CHARACTER SET utf8 COLLATE utf8_general_ci
/*CHARACTER SET 字符集 utf-8
COLLATE utf8_general_ci:排序规则
*/
2.删除数据库
DROP DATABASE [IF EXISTS] saxon;
3.使用数据库
 USE saxon;
4.查看数据库
show DATABASES;
三. 数据库表创建时的类型属性说明

image-20200709144310424

1.整数数值类
  • tinyint :tinyint数据类型存储从0 到255 之间的所有正整数。每个tinyint类型的数据占用1 个字节的存储空间

  • smallint :SMALLINT 数据类型存储从-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之间的所有正负整数。每个**SMALLINT 类型的数据占用2 个字节的存储空间,**其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。

  • int :数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。

  • bigint:BIGINT 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807) 到2^63-1( 9, 223, 372, 036 ,854 ,775, 807) 之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间

2.浮点数数值类型
  • real: 每个REAL类型的数据占用4 个字节的存储空间
  • float: 每个FLOAT 类型的数据占用4 个字节的存储空间.
  • double: 每个double 类型的数据占用8 个字节的存储空间.
  • decimal:字符串类型的小数
3.字符串
  • char:定长字符串。0-255;
  • varchar:可变字符串。0-65535;
  • tinytext:微型文本; 2^8-1;
  • text:保存文本;
  • longtext:极大文本数据;
4.日期类
  • date: 格式:YYYY-MM-DD;
  • time:格式:HH:mm:ss;
  • year:格式:YYYY
  • datetime:格式:YYYY-MM-DD HH:mm:ss;最常用的数据库日期格式;
  • timestamp:时间戳,与Java一样,自1970年1月1日0时0分0秒到现在的时间的毫秒数
四、数据库的字段属性(重点)
1.unsigned(无符号)
image-20200709144416140
  • 无符号整数
  • 不可以为负数
2.zerofill(填充零)
  • 位数不足,用0来填充。navicat中有一个填充0的操作就是这个意思!
3.自增(自动递增)
  • 通常理解为自增,在上一条记录上默认加上一
  • 一般用于设置主键,设置递增长度可以确保一次增加值的多少
4.非空(不是null)
  • 设置为该属性不设置值的话,就会报错;不填写默认就是null;
5.default(默认)
  • 如果输入该列的值,就会有默认值填入

每一个表都必须有下面的几个字段

  • ID 就是主键,用来唯一辨识它的东西,不可以重复
  • version 乐观锁
  • is_delete 伪删除,只是为了在查询的时候设置的一个标志位
  • gmt_create 创建时间
  • gmt_update 修改时间
五、创建数据库表
1.创建数据库表
--格式
/*
CREATE TABLE [IF not EXISTS] `表名`(
`字段名` 类型  [字段属性]+[字段属性]+[字段属性]...   ,
`字段名` 类型  [字段属性]+[字段属性]+[字段属性]...   ,
`字段名` 类型  [字段属性]+[字段属性]+[字段属性]...   ,
PRIMARY KEY(`字段名`)
)
1.前两个必须加上,后面的属性可以自由选择,但是记住所有的符号括号均是英语的
2.设置了默认not null,那么在写默认值的时候就不要默认设置为null;
3.字段名用的是tab键上的飘,comment(解释):用的是单引号
*/


CREATE TABLE IF not EXISTS `student`( 
`id` INT(4) not null   DEFAULT '0' comment 'student number',
`NAME` VARCHAR(10) not null  DEFAULT 'NULL',
`sex` VARCHAR(10) not null  DEFAULT 'Woman',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
2.查看其他的数据库或者数据库表的创建语句
 show CREATE DATABASE `saxon`
 show CREATE TABLE `学校开始安排表`
 
 
 -- 结果
 -- 学校开始安排表:
 CREATE TABLE `学校开始安排表` (
  `ID` int(2) NOT NULL auto_increment ,
  `学院` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `考试科目` varchar(255) NOT NULL,
  `班级` varchar(255) NOT NULL,
  `考试人数` varchar(255) NOT NULL,
  `学号字段` varchar(255) NOT NULL,
  `教室` varchar(255) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*
ENGINE=InnoDB:数据库引擎
CHARSET=utf8:字符集
auto_increment:自增列
*/

3.两种数据库引擎(innodb和myisam)
InnoDBMyISAM
事务的支持支持不支持
外键支持不支持
适用范围InnoDB适合频繁修改以及涉及到安全性较高的应用MyISAM适合查询以及插入为主的应用
是否支持行锁支持不支持
删除整个表一行一行删除重新建立
查询数据不会保存行数,查找需要先知道有几行会保存行数,下次直接读出保存的行数

1.mysql下的user的表(引擎为MyISAM)

image-20200709160606057 image-20200709160648098

2.mysql下的time_zone_transition_typer的表(引擎为InnoDB)

image-20200709161529559 image-20200709161611751

具体的细节:https://blog.csdn.net/qq_35642036/article/details/82820178

4.数据库的字符编码
  • 不修改的话默认的就是lanti-,为了保证一致性,我们要在创建时就用上utf-8的字符编码
六、修改和删除表结构
1.修改表名
ALTER TABLE `student` RENAME `student1`
2.增加表的字段
ALTER TABLE result ADD `sno` INT(4) not null COMMENT'编号';
3.修改表的字段
ALTER TABLE `student1` MODIFY `hobby` INT(10);--修改表的字段数值类型,不改变字段的名字
ALTER TABLE `student1` CHANGE `hobby` lover INT(1);--修改表名的同时可以改变数值类型
4.删除表及字段
ALTER TABLE `student1` DROP lover--删除字段
DROP TABLE IF EXISTS `student1` --删除表格
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值