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 条件];

  1. 删除表中名称为’rose’的记录。

    DELETE FROM employee WHERE NAME='rose';
  2. 删除表中所有记录。

    DELETE FROM employee ;
  3. 使用truncate删除表中记录。

    TRUNCATE TABLE employee;

DELETE 删除 和 TRUNCATE删除(了解) 两者有什么区别?

    首先,这两种都是删除表中的记录.    不同的是:        1. delete 是逐行标记删除. TRUNCATE 是将整张表包括表结构都移除,然后将表重新创建.        2. delete DML语句。 TRUNCATE DDL语句。        3. delete 删除的记录可以被恢复,TRUNCATE 不能回复。        4. delete 不释放空间,TRUNCATE 释放空间.        5.  TRUNCATE  会提交事务. (还没学)
0 0
原创粉丝点击