jdbc学习笔记3
来源:互联网 发布:上海人工智能产业园区 编辑:程序博客网 时间:2024/06/11 14:27
Mysql数据库定义语言(库的操作) DDL ,在dos命令行的操作指令
1.创建一个库
create database 库名称 [character set 码表名称 collate 字符校对集名称]
create database day15; 1>看到Query OK, 1 row affected (0.00 sec) 表示执行成功. 2>sql语句语法: 结尾应使用";"号. 3>字符校对集: 决定数据排序的。
2.显示mysql中都有哪些库了.
show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| day13 |
| mysql |
| performance_schema |
| test |
+——————–+
可以看到除了自己创建的库之外,还有一些其他库。其他库(除了test)不要乱动。因为是保存mysql的配置信息,账户信息等等。test库 : 自动创建用于测试的。
3.删除一个数据
drop database 数据库名称;
drop database day15;
4.修改数据库码表和字符校对(不常用)
alter database 数据库名称 character set 数据库码表 [collate 校对集名称];
alter database day15 character set utf8 collate utf8_bin;
5.当前要使用的库(重要)
use 库名
use day15;出现Database changed,说明切换完成.
6.查看当前选择的数据库
select database();
+————+
| database() |
+————+
| day15 |
+————+
7.显示创建库的语句.
show create database 数据库名称;
show create database day15;
| day15 | CREATE DATABASE `day15` /*!40100 DEFAULT CHARACTER SET utf8 COLLATEutf8_bin */ |//--------------------------------------------------------------------------------------------------------------------创建库 create database 库名 [character set 码表 collate 字符校对集]显示所有库 show databases;删除库 drop database 库名;修改数据库码表 alter database 库名 character set 码表 collate 字符校对集使用数据库 use 库名查看当前使用的库 select database();显示创建库语句 show create database 库名;
数据库中的数据类型 (了解,知道在什么情况下应该使用什么类型的数据)
一。数字型
整型 TINYINT 1字节 byte SMALLINT 2字节 short MEDIUMINT 3字节 (常用) INT 4字节 int BIGINT 8字节 long浮点型 FLOAT 单精度4字节 float **DOUBLE 8字节 double *DECIMAL 没有精度损失
DOUBLE 和 DECIMAL 区别?
DOUBLE类型在运算时会有精度的缺失。DECIMAL 就是解决精度缺失问题的。(底层使用字符串来保存数字)单纯想表示小数属性时,使用double。需要频繁参与运算的小数,使用decimal。
============================================
二。字符串类型
注意: 字符串类型要使用单引号包裹.短字符串类型 CHAR/VARCHAR (最大长度255字节) ==================================================== 问题:char和varchar有什么区别? char定长字符串.varchar表示变长字符串. 同时指定长度为10。当存储 abc char =》 'abc ' varchar => 'abc' 结论: 开发中varchar用的最多。 char只在表示固定长度的枚举中使用。例如 :性别(用01,02表示) ==================================================== 长字符串类型(流类型) *TEXT/CLOB 保存文本(字符流) --> 当要保存的内容超过255字节时使用. java中的writer 字符 BLOB 保存字节(字节流) --> 开发中用不到 java中的stream 字节 Character Large Object binary Large Object 区别: text:只能存储字符数据. BLOB:可以存储字符和多媒体信息(图片 声音 图像)
三。日期和时间类型
date 只记录日期 2015-01-14 time 只记录时间 11:36:25 year 只记录年 2015 datatime 又记录日期 又记录 时间 2015-01-14 11:36:25 **timestamp 同上 2015-01-14 11:36:25问题: datatime 和 timestamp 区别? 这两种类型记录的数据是一模一样. 区别在于插入的时候,如果插入datatime类型时,没有 传值,那么该类型默认值就是null; 如果插入timestamp类型时,没有 传值,那么该类型默认值就是当前时间;
//————————————————————————–;—————————————-
与创建表相关的语句(DDL) (记住,能够手写)
CREATE TABLE table_name ( field1 datatype 约束/主键约束 auto_increment, field2 datatype 约束, field3 datatype 约束 )[character set 字符集 collate 校对规则]1.创建表 create table t_user( id int, name varchar(20), sal double(4,3), birthday datetime, hiredate timestamp ); varchar最好指定长度 整型一般不指定.2.查看当前库中有哪些表 show tables;3.查看表的结构 desc 表名; description desc t_user;4.删除表 drop table 表名; drop table t_user;5.添加一列 alter table 表名 add 列名 类型; alter table t_user add photo blob;6.修改列的类型 alter table 表名 modify 列名 类型; alter table t_user modify photo varchar(20);7.修改列的名称 alter table 表名 change 旧列名 新列名 数据类型; 将 photo这一列 改名为 image alter table t_user change photo image varchar(20); 8.删除某列 alter table 表名 drop 列名; alter table t_user drop image; 9.修改表的名称 rename table 旧表名 to 新名; rename table t_user to user; 10(用的极少)修改表的字符集. (如果创建表时不指定,默认使用数据库的字符集) alter table 表名 character set 字符集 collate 校对集; alter table t_user character set utf8 collate utf8_bin;
//————————————————————————————————-
//————————————————————————-
列的约束 (掌握)
保证数据的完整性的.
1.非空约束(not null) 指定非空约束的列, 在插入记录时 必须包含值.2.唯一约束(unique) 该列的内容在表中. 值是唯一的.3.主键约束(primary key) 当想要把某一列的值,作为该列的唯一标示符时,可以指定主键约束(包含非空约束和唯一约束). 一个表中只能指定一个主键约束列. 主键约束 , 可以理解为 非空+唯一. 注意: 并且一张表中只能有一个主键约束.约束体现数据库的完整性.
例如:创建带有约束的表
create table t_user2( id int primary key auto_increament, -- 员工编号 name varchar(10) not null, -- 员工姓名 loginname varchar(10) not null unique, -- 登陆名称 password varchar(20) not null, -- 密码 age int(3) not null, -- 年龄 birthday datetime not null, -- 生日 hiredate timestamp not null -- 入职日期);
//—————————————————————————————————————————-
主键自动增长 (掌握)
注意:
1.前提某个表的主键是数字. 我们可以将该主键设置为自增.
2.使用主键自增可能会造成主键的断层。
3.mysql,sqlserver,sqllite这三个数据库具有该功能.
4.主键自增只能给主键约束的列加。
自增就是 每次插入记录时不需要指定值. 该字段自己维护自己的值.维护方式就是每次加1;
语法:
create table t_user(
id int primary key auto_increment,
password varchar(30) not null,
age int not null,
birthday datetime not null,
hiredate timestamp not null,
number int unique
);
//——————————–创建修改表练习—————————————————
CREATE TABLE employee ( id INT(10), NAME VARCHAR(10), gender VARCHAR(10), birthday DATETIME, entry_date TIMESTAMP, job VARCHAR(5), salary DOUBLE(5,3), RESUME TEXT );
1.在上面员工表的基础上增加一个image列。
alter table employee add image varchar(20);
2.修改job列,使其长度为60。
alter table employee modify job varchar(60);
3.删除gender列。
alter table employee drop gender;
4.表名改为user。
rename table employee to user;
5.修改表的字符集为utf8
6.列名name修改为username
alter table employee change name username varchar(20);
对表中数据的增删改(DML)——————————————————————-
create table t_user( id int primary key auto_increment, name varchar(20) not null, email varchar(20) unique )
//—————————————–
为表添加记录 (必须掌握)
insert into 表名[(列名1,列名2...)] values (值1,值2...);
1.插入一条数据
1>指定要插入那些列 insert into t_user(name,email) values('tom','tom@itcast.cn'); ****注意: 数据类型为字符串类型的.需要使用单引号包裹.2>不指定插入哪些列, 需要指定每一列的值 insert into t_user values(null,'jerry','jerry@itcast.cn'); insert into t_user(name,email) values('汤姆','tom2@itcast.cn');
==========================================================================================================
SHOW VARIABLES LIKE '%character%'; ==> 查看字符编码配置| character_set_client | gbk 客户端的编码 *** || character_set_results | gbk 结果集的编码 *** || character_set_connection | utf8 客户端连接的编码 || character_set_database | utf8 数据库默认使用的编码 || character_set_filesystem | BINARY 文件系统存放时使用的编码 || character_set_server | utf8 服务器编码 安装时指定的 || character_set_system | utf8 内部系统编码结论: 如果使用cmd 命令控制台操作 数据库, 注意character_set_client 和 character_set_results 需要设置成GBK, 因为我们的命令控制航使用gbk码表显示中文.使用如下命令设置:方式: set character_set_client=gbk set character_set_results=gbk注意: 每次重新连接数据库都要重新设置. 如果使用的cmd窗口操作数据库. 就修改如下的码表为gbk(cmd窗口使用的是gbk码表). 这种做法影响的范围只在你当前链接中.
//————————————————————————————
修改一条记录 (必须掌握)
update 表名 set 列名1 = 值 , 列名2 = 值 ....[where 条件1,条件2...]
/—————————————–
create table t_user( id int primary key auto_increment, name varchar(20) not null, email varchar(20) unique )
//—————————————-
1.修改表中id为3 的记录, 将name修改为rose;
update t_user set name='rose' where id=3; update t_user set name='rose';
//—————————————————————————————————–
删除记录语句 (必须掌握)
DELETE FROM 表名 [WHERE 条件];
删除表中名称为’rose’的记录。
DELETE FROM employee WHERE NAME='rose';
删除表中所有记录。
DELETE FROM employee ;
使用truncate删除表中记录。
TRUNCATE TABLE employee;
DELETE 删除 和 TRUNCATE删除(了解) 两者有什么区别?
首先,这两种都是删除表中的记录. 不同的是: 1. delete 是逐行标记删除. TRUNCATE 是将整张表包括表结构都移除,然后将表重新创建. 2. delete DML语句。 TRUNCATE DDL语句。 3. delete 删除的记录可以被恢复,TRUNCATE 不能回复。 4. delete 不释放空间,TRUNCATE 释放空间. 5. TRUNCATE 会提交事务. (还没学)
- jdbc学习笔记(3)
- jdbc学习笔记3
- JDBC学习笔记(3)之jdbc简单封装
- jdbc 学习笔记3(PreparedStatement对象)
- 学习笔记3:Struts2+Spring JDBC+Spring
- Java学习笔记3-JDBC事务管理
- JDBC学习笔记(二)
- JDBC学习笔记(二)
- JDBC学习笔记(三)
- JDBC学习笔记(四)
- JDBC学习笔记(六)
- JDBC学习笔记
- JDBC学习笔记
- JDBC学习笔记1
- jdbc学习笔记2
- jdbc学习笔记
- JDBC学习笔记
- jdbc学习笔记(1)
- scala 排序算法 快速排序
- jdbc学习笔记1
- jdbc学习笔记2
- javascript的模块化编程
- java中的四种引用类型
- jdbc学习笔记3
- 2017实习心得体会以及自己的小目标
- JAVA学习笔记-public、protected、private、abstract、static和final
- jdbc学习笔记4
- C++中int main(int argc, char *argv[])解释
- 第五十一讲 Spark优化之“钨丝计划”
- 关于前端性能优化的小想法
- JavaScript中数组slice和splice的对比小结
- 《Docker……》笔记-11 附录A常见问题汇总