欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库之操作数据库

程序员文章站 2022-06-01 17:06:16
...

操作数据库

一. 数据库的连接(命令行)

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;

三. 数据库表创建时的类型属性说明

数据库之操作数据库

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(无符号)
数据库之操作数据库
  • 无符号整数
  • 不可以为负数
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)
InnoDB MyISAM
事务的支持 支持 不支持
外键 支持 不支持
适用范围 InnoDB适合频繁修改以及涉及到安全性较高的应用 MyISAM适合查询以及插入为主的应用
是否支持行锁 支持 不支持
删除整个表 一行一行删除 重新建立
查询数据 不会保存行数,查找需要先知道有几行 会保存行数,下次直接读出保存的行数

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

数据库之操作数据库数据库之操作数据库

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

数据库之操作数据库数据库之操作数据库

具体的细节: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` --删除表格
相关标签: 数据库 数据库