mysql笔记
常用命令
show create database demo-- 查询创建数据库的语句
show create table students-- 查看表的代码
desc students-- 查看表的结构
create table `表名`--创建表名
1. 修改和删除
修改
--students是旧表名teacher是新表名
ALTER table students RENAME AS teacher
--增加表的字段
ALTER TABLE teacher ADD ip int(11)
--修改表的字段
ALTER TABLE teacher MODIFY age VARCHAR(11)--修改约束
alter table teacher change age age1 int(10)--修改字段名字
--删除表的字段
alter table teacher drop age1
删除
drop table if exists studens--如果表存在就删除。
2. MySQL的数据管理
2.1. DML语言:数据操作语言
-
inset
-
updat
-
delete
2.2.添加
insert into `teacher`(`name`) values ('小李子')
insert into 表名(字段) values('小李子')
2.3.修改
UPDATE `teacher` SET `name`='efafe' WHERE id=1--修改名字
where子句的运算符,返回boolean
| 操作符 | 含义 | 范围 | 结果 |
|---|---|---|---|
| = | 等于 | 5=6 | false |
| <>或!= | 不等于 | 5<> | true |
| > | |||
| < | |||
| <= | |||
| between...and... | 在某个范围内 | [2.5] | |
| and | 我和你&& | ||
| or | 我或着你||· |
2.4.删除
delete命令
语法:delete from 表名 where 条件
delete from `teacher` WHERE id=3
truncate命令
作用:完全清空一个数据库表,表的索引约束不变
truncate `teacher`
delete和truncate的区别
-
相同点:都能删除数据,都不会删除表结构
-
不同:
-
truncate重新设置自增会归零
-
不会影响事物
-
3.DQL查询数据(重点)
4.1,DQL
-
所有的查询语句都用select
-
使用频率最高
4.2指定查询字段
--查询全部的学生 select 字段 from 表
select * from teacher
select `name` as 名字,`sex` as 姓名 from teacher as student--查询指定的字段
--函数concat(a,b)
select concat('姓名:',name) as 新名字 from teachre
起别名用or
去重distinct
作用:去除select查询的结果重复的数据,只显示一条
select `name` from teacher
select distinct `name` from teacher--去重
数据库的列
select version()--查询当前的版本(函数)
select 100*3-1 as 计算结果--计算表达式
select @@auto_increment_increment--查询自增的步长
select `id`+1 from teacher
where语句
SELECT id,`name`FROM teacher
WHERE id>6 and id<10-
| 运算符 | ||
|---|---|---|
| and && | a and b a&&b | 逻辑与 |
| or || | a or b a||b | 逻辑或 |
| Not ! | not a !a | 逻辑 |
模糊查询:比较运算符
| 运算符 | 语法 | 描述 |
|---|---|---|
| is null | a is nulla | 如果操作符为null,结果为真 |
| is not null | a is not nulla | 如果操作符为not null,结果为真 |
| between | a between b and c | 如果a在b和c之间,结果为真 |
| link | a link b | SQL匹配,如果a匹配到了b,结果为真 |
| in | a in(a1,a2,a3) | 假设a等于a1,a2....,结果为真 |
%表示一个字符串,_(一个字符)
select `name` from teacher
select `name` like '刘%'
select `name` from teacher
select `name` like '刘_'
select `name` from teacher
select `name` like '%刘%'
select `name` from teacher
select `name` int('张三','李四')
select `name` ,sex FROM teacher--查新为空的字段
WHERE sex IS NULL
4.2连表查询
join 对比
4.3自连接
4.4分页和排序查询
排序
排序
LIMIT 6,5 --从第六页开始往后面数5个数
5.索引
规范数据库设计
数据库的三大范式
6.idea连接数据库
package com.cqyti.stx.jadbc;
import java.sql.*;
public class FirstDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//用户信息和url
//?useUnicode=true&characterEncoding=utf8&useSSL=true
String url = "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username = "root";
String password = "123456";
//连接成功,数据库对象,Connection 代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//执行SQL对象,Statement执行sql对象
Statement statement = connection.createStatement();
String sql = "SELECT * FROM teacher";
//返回结果集,结果集中封装我们查询的全部结果。
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
System.out.println("id" + resultSet.getObject("id"));
System.out.println("name" + resultSet.getObject("name"));
System.out.println("sex" + resultSet.getObject("sex"));
System.out.println("ip" + resultSet.getObject("ip"));
}
//释放连接
resultSet.close();
statement.close();
connection.close();
}
}

浙公网安备 33010602011771号