文章目录
mysql
数据库的简介
数据库是按照数据结构进行管理和存储的仓库,是一个长期的存储在计算机内,有组织有共享的,统一管理的数据集合,用户可以对数据进行新增, 删除,修改,查找。
为什么会有数据库
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