Java第十八天:mysql

mysql

数据库的简介

数据库是按照数据结构进行管理和存储的仓库,是一个长期的存储在计算机内,有组织有共享的,统一管理的数据集合,用户可以对数据进行新增, 删除,修改,查找。
为什么会有数据库

见1.png

mysql的安装

1.点击接受->next

2.点击custom->next

3.点击mysql server 把它点到右边要安装的地方->next

4.安装文件的路径->next

5.excute

6.next->next->next

7.设置密码 123456

8.next->next

8.excute->finsh->next->finsh

如何验证mysql数据库是否已经安装成功

数据库的分类(面试问)

关系型数据库:mysql  oracle SQL server sqlite
非关系型数据库:redis memorycache   做数据缓存的 半结构化数据(json xml)

数据库的组成部分

数据库的服务器
数据库
数据表
数据(字段)

SQL语句的分类(重点)

所有的sql语句都是一样的,针对于任何数据库

sql:结构化查询语句,适用于任何数据库(structrue query language)

DDL:数据定义语言(data define language)
DML:数据处理语言(增删改)
DTL:数据事务处理,回滚(重要)
DQL:数据查询语言(查询)
DCL:数据控制,权限原因


通过命令操作数据库

#连接数据库
#第一中能够方式
#mysql 告知计算机启动的是哪个软件
#-h 主机  localhost  127.0.0.1
#-u 用户名 user   数据库默认的用户
#-p 密码 password  
cmd > mysql -h localhost -u root -p123456
cmd > mysql -u root -p  简写的一种方式
#第二种方式
使用mysql客户端

#查看数据库服务器中有哪些数据库
mysql > show databases;
#创建数据库
mysql > create database java1910;
#删除数据库(慎用)
mysql > drop database java1910;

#选择数据库, 就是说以后所有的表都在java1910库下面
mysql > use java1910;
#在数据库下面建表

#person 表名
mysql >  create table person(
#	字段名 数据类型
	id int,
	#可变的字符串,最大30个字符
	name varchar(30),
	#0-255int类型的数据 java ->byte
	age tinyint,
	#text 文本类型
	info text
	);
	create table person(id int, name varchar, age tinyint, info text, gender);
#查看当前的数据库下面有哪些数据表
mysql > show tables;
+--------------------+
| Tables_in_1910java |
+--------------------+
| student            |
+--------------------+
1 row in set (0.00 sec)

#查看表的结构(查看字段)
mysql > desc person;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
| age   | tinyint(4)  | YES  |     | NULL    |       |
| info  | text        | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
#删除表
mysql > drop table person1;

#查看数据库创建的过程(了解)
mysql > show create table person;

#查看数据表的字符集(了解)
mysql > show variables like 'character%';


#退出数据库
mysql > exit;
mysql > quit;


对数据库,和数据=表进行操作的命令 DDL 


修改表

#删除字段
mysql > alter table person drop info;

#添加字段, 性别,数据类型为tinyint 第一 够用   第二节省空间
mysql > alter table person add gender tinyint;


#在指定name的字段后面添加新的字段
mysql > alter table person add gender tinyint after name;

#修改指定的字段数据类型
mysql > alter table person modify name char(30);

#修改指定字段的名字和数据类型
mysql > alter table person change gender sex boolean; 

#添加新的字段
#最大长度为8位, 最多的小数位 只能有2个
mysql > alter table person add salary float(8,2);
mysql > alter table person add info text;

总结:以上命令都是对数据库,和数据表字段进行操作的

插入数据(重点)

mysql > desc person;

#第一种插入方式
mysql > insert into(into可以省略) person (id, name, sex, age, salary, info) values (1, "骚磊", 0, 61, 20, "hello world!!!");

#第二种插入方式(指定字段的插入)
mysql > insert into person (id, name, sex, age, info) values(2, "骚杰", 1, 66, "这是一节有味道的课并且还有颜色。")

#第三种插入方式,整体的插入数据,必须按照顺序
mysql > insert into person values(3, "宝哥哥", 0, 60, 0, "哈哈傻逼啊!!!");

删除数据(慎用,一定要加条件)

#delete
#如果删除数据的时候,不给条件(不给约束条件)
mysql > delete from person;(不要用)

#通过一些条件进行删除
mysql > delete from person where id = 3;

修改数据

#update
#update  表名  set  字段=新值(禁止使用),数据库里面所有都修改了
mysql > update person set name="骚磊";

#加条件的修改(是常用的)通过一些约束条来进行修改
mysql > update person set name = "林妹妹" where id = 4;

事务的处理

为了保证数据库里面的数据一个安全性,一般用于修改, 删除数据

mysql > set autocommit = 0;

delete from person;
#确认无误后,再写这个命令
mysql > commit;

#操作有问题的时候, 回滚set autocommit 之前
mysql > rollback; 
后期还会再讲,因为做项目的时候,牵涉到支付

查询数据

#select,
#在开发的时候不允许这样写的,会将咱们数据库person表里面所有的数据显示出来,会拖慢咱们数据库的效率
mysql > select * from person;

#按照字段查询
msyql > select id, name from person;
mysql > select name, id from person;

#安装字段查询,还可以给字段起一个别名
mysql > select id as "编号" , name as "姓名" , info as "信息"  from person;

#还可以使用最基本的条件进行查询
# > <   >=     <=      !=    =
mysql > select * from person where id >= 19;


#还可以使用逻辑运算符
mysql > select * from person where age > 12 and salary > 10000;
mysql > select * from person where age > 12 or salary > 10000;


#排序  order by
mysql > select * from person order by age asc; #升序
mysql > select * from person order by age desc#降序

CREATE TABLE students
(sno VARCHAR(3) NOT NULL, 
sname VARCHAR(4) NOT NULL,
ssex VARCHAR(2) NOT NULL, 
sbirthday DATETIME,
class VARCHAR(5));
 
CREATE TABLE courses
(cno VARCHAR(5) NOT NULL, 
cname VARCHAR(10) NOT NULL, 
tno VARCHAR(10) NOT NULL);
 
CREATE TABLE scores 
(sno VARCHAR(3) NOT NULL, 
cno VARCHAR(5) NOT NULL, 
degree NUMERIC(10, 1) NOT NULL);
 
CREATE TABLE teachers 
(tno VARCHAR(3) NOT NULL, 
tname VARCHAR(4) NOT NULL, tsex VARCHAR(2) NOT NULL, 
tbirthday DATETIME NOT NULL, prof VARCHAR(6), 
depart VARCHAR(10) NOT NULL);

INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,'曾华' ,'男' ,'1977-09-01',95033);
INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (105 ,'匡明' ,'男' ,'1975-10-02',95031);
INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (107 ,'王丽' ,'女' ,'1976-01-23',95033);
INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (101 ,'李军' ,'男' ,'1976-02-20',95033);
INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (109 ,'王芳' ,'女' ,'1975-02-10',95031);
INSERT INTO STUDENTS (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (103 ,'陆君' ,'男' ,'1974-06-03',95031);
 
INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('3-105' ,'计算机导论',825);
INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('3-245' ,'操作系统' ,804);
INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('6-166' ,'数据电路' ,856);
INSERT INTO COURSES(CNO,CNAME,TNO)VALUES ('9-888' ,'高等数学' ,100);
 
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (103,'3-245',86);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (105,'3-245',75);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (109,'3-245',68);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (103,'3-105',92);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (105,'3-105',88);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (109,'3-105',76);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (101,'3-105',64);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (107,'3-105',91);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (108,'3-105',78);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (101,'6-166',85);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (107,'6-106',79);
INSERT INTO SCORES(SNO,CNO,DEGREE)VALUES (108,'6-166',81);
 
INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (804,'李诚','男','1958-12-02','副教授','计算机系');
INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (856,'张旭','男','1969-03-12','讲师','电子工程系');
INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (825,'王萍','女','1972-05-05','助教','计算机系');
INSERT INTO TEACHERS(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (831,'刘冰','女','1977-08-14','助教','电子工程系');

希望大家关注我一波,防止以后迷路,有需要的可以加我Q讨论互相学习java ,学习路线探讨,经验分享与java Q:2415773436

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值