网站套餐方案,一个电商网站的网页制作,网站建设用源码,比较好的开源cms系统数据库操作过程#xff1a;
1.用户在客户端输入 SQL 2.客户端会把 SQL 通过网络发送给服务器 3.服务器执行这个 SQL,把结果返回给客户端 4.客户端收到结果,显示到界面上
数据库的操作
这里的数据库不是代表一个软件#xff0c;而是代表一个数据集合。
显示当前的数据库
…数据库操作过程
1.用户在客户端输入 SQL 2.客户端会把 SQL 通过网络发送给服务器 3.服务器执行这个 SQL,把结果返回给客户端 4.客户端收到结果,显示到界面上
数据库的操作
这里的数据库不是代表一个软件而是代表一个数据集合。
显示当前的数据库
show databases;创建数据库
语法
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name大写的表示关键字[] 是可选项CHARACTER SET: 指定数据库采用的字符集COLLATE: 指定数据库字符集的校验规则
create database 数据库名 CREATE DATABASE 数据库名 注意: 1.createdatabase … 相当于关键字 2.SQL 的关键字 不区分大小写的 3.创建的数据库的名字可以随便起但是不能重复!! 4.单词之间至少有一个空格.也可以是多个空格,不能没有!! 5.在 命令行 中输入的 sql 必须以;作为结尾!!
创建名称为my_database的数据库
create database my_database;
-- 数据库已经存在,再创建就会报错
-- 如果一条一条执行 SQL,不报错影响不大。如果是批量执行 SQL(把很多 SQL 写到一个 文件 中)如果中间某个 SQL 报错, 就会执行停止。
-- 使用了 IF NOT EXISTS 就不会报错了!!
create database if not exists my_database;
-- 创建数据库同时指定数据库的 字符集utf8
create database my_database character set utf8;-- 一般形式
create database my_database charset utf8;-- 简写形式英文字母是如何在计算机中表示的? ascii 使用 数字 表示字符。 ascii 中,只能表示 英文字母 和 标点符号,以及阿拉伯数字。汉字要表示的内容特别多y有几万个很明显ascii是不够用的。 其他的字符集思路是一致的,可以搞一个更大的表,来表示汉字。演化出了很多套这样的表示方式~~ (不像 ascii只有一套)。对于中文来说当前最常见的表示方式有两种 gbk使用两个字节,表示一个汉字的 utf8使用三个字节,表示一个汉字的
在这两个表上,同一个汉字,表示的数字不同。同一个数字,对应汉字也不同。VS 使用的编码方式是跟随系统windows 简体中文版,系统编码就是 gbk。目前更主流的还是 utf8这个东西能表示的内容特别多除了汉字之外各种其他国家的语言文字符号都能表示。java 的字符集是在编译运行的时候,通过命令行参数显式指定的.一般默认都是 utf8 。
mysql 默认字符集是拉丁文(没法表示中文的)。手动设定一个字符集是非常关键的后续如果要插入一些中文,如果不是 utf8 / gbk 之类的中文就会乱码。 mysgl 的 utf8 是残缺的.(残缺了一些 emoji 表情)完整版utf8就是utf8mb4一般情况下两种字符集是都可以设置的。
使用数据库
使用my_database数据库
use my_database;1.4 删除数据库
DROP DATABASE [IF EXISTS] db_name;drop database 数据库名;
-- 删除 删除my_database数据库
drop database my_database;
-- 如果存在 my_database数据库删除my_database数据库
drop database if exists my_database;删库操作时非常危险的,一旦删掉数据库,数据库中的所有数据就没了.很难恢复。
如何针对上述危险操作,防患于未然
1.权限不同的用户,能进行的操作是不一样的(有效避免失误) 2.备份 。一旦不小心误删除了数据, 通过之前的备份数据,恢复回来 3.重要操作的时候,拉上其他人帮忙一起检查。
2. 常用数据类型
数字
数据类型大小说明对应java类型BIT[ (M) ]M指定位 数默认 为1二进制数M范围从1到64 存储数值范围从0到2^M-1常用Boolean对应BIT此时 默认是1位即只能存0和1TINYINT1字节ByteSMALLINT2字节ShortINT4字节IntegerBIGINT8字节LongFLOAT(M, D)4字节单精度M 是有效数字的长度D是小数点后的位数。会发生精度丢失FloatDOUBLE(M, D)8字节DoubleDECIMAL(M, D)M/D最大 值2双精度M指定长度D表示 小数点位数。精确数值BigDecimalNUMERIC(M, D)M/D最大 值2和DECIMAL一样BigDecimal
DECIMAL 能够精确表示小数float 和 double 是不能精确表示小数的!! 0.1 0.2 ! 0.3 因此DECIMAL 这个类型就是为了解决上述问题的。虽然能精确存储精确计算了但是存储空间占用的更多计算速度也是更慢的。
字符串
数据类型大小说明对应java类型VARCHAR (SIZE)0-65,535字节可变长度字符串StringTEXT0-65,535字节长文本数据StringMEDIUMTEXT0-16 777 215字节中等长度文本数据StringBLOB0-65,535字节二进制形式的长文本数据byte[]
varchar(SIZE) 属于可变长的字符串SIZE 表示最大长度.单位是 字符(不是字节!!) varchar(10) 最多十个字.哪怕是汉字,也是十个。
日期
数据类型大 小说明对应java类型DATETIME8 字 节范围从1000到9999年不会进行时区的 检索及转换。java.util.Date、 java.sql.TimestampTIMESTAMP4 字 节范围从1970到2038年自动检索当前时 区并进行转换。java.util.Date、 java.sql.Timestamp
TIMESTAMP 时间戳计算机表示时间的一种经典方式以1970年1月1日0时0分0秒为基准计算当前时刻和基准时刻的秒数/毫秒数 之差。范围从1970到2038年这个类型最大的问题是 4 个字节表示的范围太小了。
小结 上述这么多类型,不必全都掌握,大概熟悉几个常用的就可以了int, bigint, varchar, double, decimal, datetime。
数据表操作
关系型数据库中,数据是以表”的方式来进行组织的(类似于 excel)。每个数据库中,里面就可以有很多个数据表每个表可以有很多行,每一行又可以有很多个列(字段)。
所有的和表相关的操作,都是需要选中数据库再进行 use my_database;
3.1 创建表
create table 表名(列名 类型, 列名 类型, 列名 类型......
);创建表的时候,就需要先把表的类型确定好后续插入的数据也要遵守当前的这个类型。 -- 创建学生表有id和name两个字段create table student(id int, name varchar(20) comment 姓名);comment 是注释属于是在创建表的时候的一种专属注释 SQL 中如果想用注释,可以使用 # 或者 –
3.2 查看数据库中的所有表
show tables;3.3 查看指定表的表结构
desc 表名;desc describe(描述)
-- 查看student表的结构
desc student;int(11): 表示的是该列在打印的时候显示的时候,最多占11 个字符这么宽和存储范围是无关的。
查看的表结构中的含义:
Field:字段.表一行里有几列. Type:每一列的类型 Null:该列是否允许为空yes 就是允许为空(不填) Key: 索引类型 Default:默认值. Extra:额外补充信息
3.4 删除表
语法格式
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...-- 删除 student 表
drop table student;
-- 如果存在 stu_test 表则删除 stu_test 表
drop table if exists student;上述操作是数据库和数据表的最基础的操作