Java mysql 1

数据库类型:关系型数据库,非关系型数据库

SQL结构化查询语言:
必须是通过服务器,连接我们的数据库,才能进行操作
使用各种SQL语句、增、删、改、查

在DOC系统中操作MySQL:
1> 环境变量
我的电脑 -> 右击属性 -> 高级系统设置 -> 环境变量 ->系统变量 ->path
在path变量后加上;变量值
变量值就是MySQL下的bin目录路径 
2>进入MySQL数据库
DOS系统下清屏的命令:cls
mysql  -u root -p -b
-u 用户名(我们用的是root用户:超级管理员)
-p 用户密码(不需要再它后面写密码,密码是回车之后写的)
-b 蜂鸣器(当命令敲错了,报错时提示的声音)
3>进入MySQL数据库以后的命令
注意:
1) 每一行命令结束了以后,请使用 ;
2) 在MySQL的命令中,如果一行命令没有敲完,就回车了,它会继续执行下去,前提是必须是一条完整的命令
3) 退出敲错的命令、或不想继续执行下去的命令时,用\c 或者 Ctrl+c
4) 我们要想让数据竖起来显示,在命令后用\G,有时候一行盛不下了会乱,\G可以解决这个问题
5) help 查看所有可以使用的快捷命令
4> 退出数据库服务器
\q 、 exit、 quit 三者皆可
注意:
要想将我们在DOS命令行下边输入的所有的命令都存储到一个文档中,就需要使用tee命令
tee 路径;
例如:tee E:\wamp\www\Test\Test_MySQL\1.sql

1、建数据库与数据库的使用
新建语法: create database 数据库名字;
使用库:use 数据库名;
2、表的创建与显示
新建:create table 表名(
    列名1 类型 约束,
    列名2 类型 约束,
    ...
    列名n 类型 约束,
    约束
);
create table Student(
   id int,
   name varchar(10)
);
显示:show tables;
3、查看表结构:desc 表名;
4、数据的插入:insert into 表名(列1, 列2...列n) values (值1,值2... 值n);
insert into student(id,name) values(1, '张三');
5、数据查询:select 列1,列2....列n from 表名;
select id,name from student;
select * from student;
6. 数据类型
整数类型
    int -2^31 ~ 2^31-1   四个字节
    tinyint 一个字节
    smallint 两个字节
    bigint 八个字节
小数类型
    浮点类型
        FLOAT 
        DOUBLE
    定点类型 (小数部分不会丢失精度,占用空间高)
        DECIMAL(p, s)
        p 有效数字长度
        s 小数位数
        
        decimal(10, 2)
        12345678.77  ok
        123456789.44  存不下
        12345678.456  小数部分变为46
        
字符串类型
    char(最大长度)    定长的字符类型
    varchar(最大长度)  变长的字符类型
    
    name char(5)  'abc'  存储后  'abc  '  用空格补齐不足的部分, 再查询时会去掉, 效率高,但占用空间多, 最大值255
    name varchar(5) 'abc'  存储后 'abc'    不会用空格补齐                , 不会占用额外空间, 效率较char低, 最大值65535
    
日期类型
    datetime 包括年月日,时分秒 时间范围短(1000-1-1 ~ 9999-12-31)
    date    只包括年月日
    time    只包括时分秒
    timestamp  也可以包括年月日时分秒, 时间范围短(1970-1-1 ~ 2038-1-19)
    
create table test(
    a datetime,
    b date,
    c time,
    d timestamp
);
now() 获取当前时间

insert into test(a,b,c,d) values(now(),now(),now(),now());
insert into test(a) values('1999-5-8 10:30:00');

7、约束
学生表  student
编号 int  sid
姓名 varchar sname
生日 date   birthday
性别 char   sex

 把约束加在类型之后
create table student(
  sid int unique,
  sname varchar(20),
  birthday date,
  sex char(1)
);
 把约束单独一行
create table student(
  sid int not null,
  sname varchar(20) not null,
  birthday date,
  sex char(1),
  unique(sid)
);
删除表可以使用 drop table 表名;
可以使用 unique 唯一约束,一个表中可以有多个唯一约束
       not null 非空约束, 让列的取值不能为空
primary key 主键约束, 效果上综合的唯一和非空, 一个表只能有一个主键
       foreign key 外键约束, 检查两表的关系列是否合法, 被引用的列必须是唯一的
       check (mysql不支持)
create table student(
  sid int primary key,
  sname varchar(20) not null,
  birthday date,
  sex char(1),
  cid int,
  foreign key(cid) references class(cid) /* student中的cid取值必须引用class中的cid的值 */
);
create table student(
  sid int,
  sname varchar(20) not null,
  birthday date,
  sex char(1),
  cid int,
  primary key(sid),
  foreign key(cid) references class(cid) /* student中的cid取值必须引用class中的cid的值 */
);
insert into student(sid,sname,birthday,sex,cid)values(1,'张三',now(),'男',2);
insert into student(sid,sname,birthday,sex,cid)values(2,'李四',now(),'男',3);

create table class(
   cid int primary key,
   cname varchar(20)
);
8. 自增列 (主要用在给主键产生一个唯一值)
create table course(
    cid int primary key auto_increment, /*产生一个自动增长的值*/
    cname varchar(10)
);
insert into course(cid, cname) values(null, 'java se'); -- 给null
insert into course(cname) values('web'); -- 直接把名字和值从insert中去掉
注意用了自增长,就不要手动赋值了,否则会使用手动赋的值

不从1开始的例子
create table course(
    cid int primary key auto_increment, /*产生一个自动增长的值*/
    cname varchar(10)
) auto_increment=1000;
9. 默认值 (default)
create table person(
    id int primary key auto_increment,
    cname varchar(10),
    sex char(1) default '男',
    lastmodify timestamp default current_timestamp on update current_timestamp
);
-- default current_timestamp 插入数据时,采用当前时间作为默认值
-- on update current_timestamp 修改数据时,采用修改那个时刻的时间来更新这一列
insert into person(cname) values('张三');
insert into person(cname,sex) values('李四','女');
10. 修改
update 表 set 列名=新值, 列2=值2 ...;  -- 修改表中所有的行
update 表 set 列名=新值, 列2=值2 ... where 列名=条件;   -- 仅更新符合条件的记录 

update course set cname='java se'; -- 修改表中所有课程名称
update course set cname='spring' where cid=1000; -- 仅修改了cid=1000 这条记录的课程名称

11. 删除
delete from 表名; -- 删除这个表中所有记录,但表的定义不动
delete from 表名 where 列名=条件; -- 仅删除符合条件的记录
drop table 表名; -- 删除这个表,连同里面的数据

12. 导入数据
1) 可以用
mysql > source 路径\sql文件的名称;
源 
例如:source E:\6.23实训班共享\预习\数据库(详)\scott.sql

2) 在cmd窗口运行
mysql -uroot -p test3 < E:\6.23实训班共享\预习\数据库(详)\scott.sql
其中test3是数据库的名字 

13. 导出数据 
在cmd窗口运行
mysqldump -uroot -p test3 > a.sql


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值