MySql基础笔记-增删改查

MySql基础笔记-增删改查

一、数据库及其创建

1. 使用数据库的优势

  • 数据存储在内存中,速度快,但是不能永久保存
  • 数据存储在文件中,可以永久保存,但是操作查询步骤繁琐
  • 数据库专门管理数据,具有:
    • 查询迅速
    • 永久保存数据
    • 对数据的管理方便 这三个优点,缺点是,需要钱买。

数据自本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。

数据库管理系统下有多个数据库,每个数据库有多张表,每个表中又记录了很多数据。

在这里插入图片描述

2.SQL

SQL指的是结构化查询语言,是一种所有关系型数据库的查询规范,不同的数据库都支持。通用的数据库操作语言,可以用在不同的数据库中。 不同的数据库SQL 语句有一些区别。例如MySql就有一些自己特有的语句。

MySQL的语法:

  • 每条语句以分号结尾,在命令行操作里面必须加,在SQLyog不是必须
  • 不区分大小写
  • 有三种注释方式
    • –空格 单行注释
    • /**/ 多行注释
    • Mysql特有注释方式:#内容
MYSQL服务的启动和登录

** MYSQL服务的启动**

  • 命令行中 输入 net start mysql 关闭: net stop mysql
  • 我的电脑 ——>管理——>服务和应用程序——>Mysql——>右键启动与停止

MySQL的登录方式

用命令行:

  • mysql -u账户名 -p账户名(不加分号!)如: mysql -uroot -proot
  • mysql -h ip 地址 -u用户名 -p密码 如:mysql -h127.0.0.1 -uroot -proot
  • mysql --host=ip地址 --user=用户名 --password=密码 如: mysql --host=127.0.0.1 --user=root --passowrd=root

第二种方式是用SQL客户端登录

2. 数据库的创建

--创建db,db2数据库
create database db;
create database db2;
--更改默认的字符集
alter database db default character set  utf8;
--查看数据库的创建语句
SHOW CREATE DATABASE db;
--删除数据库
drop database db2;
--查看目前正在使用的数据库
select database();
--切换数据库从db切换到db3
use db3;

二、表的创建及其增删改查

1. 表的创建DDL语句

DCL:Data Construed Language (数据定义语句,上述的建库也属于此类语言)

create table 表名()

create table 表名(
列名1 类型,
列名2 类型,
.....
列名n 类型 -- 最后一个列不用加
);
______________________________
如创建一个学生表:
create table student(
name varchar(20),
age int,
birthday date
);
  • 如果已经存在一个表,想要再创一张可以采用create table 新表名 like 旧表名的方式,

如:create table student2 like student;

2. DML

Data Manipulation Language(DML 数据操纵语言)

MySql中的逻辑符号中

一、表的结构修改
-- 向学生表中增加一个性别列,类型为长度为20的字符串 alter table 表明 add 列名 类型;
alter table student add gender varchar(20);

-- 改变表中某列的名字和类型 alter table 表名 change 旧列名 新列名 类型;
alter table students change birthday shengri date;

-- 改变表的字符集 alter table 表名 character set 字符集;
ALTER TABLE students CHARACTER SET utf8;

-- 改变某列的类型,alter table 表名 modify 列名 新类型,(由长度为20的字符串改为长度为25的字符串)
alter table students modify name varchar(25);

-- 改变表名 rename table 旧表名 to 新表名
rename table student to students;


二、表中数据增减改
-- 表中插入数据(插入全部,可以不用列出插入的列名,但是数据的顺序必须和列名数据对应)
insert into students values('hanhan',18,'2020-1-1','man');

-- 也可以一次性插入多个,数据中间用逗号隔开
insert into students values('hanhan',18,'2020-1-1','man'),('nnn',19,'2020-1-1','man');

-- 插入对应的数据,该行没有输入的数据默认为NULL值
INSERT INTO students (NAME,age) VALUE('dasdsa',36);

-- 数据的更新:将表中年龄为36的学生的名字改为“新名字” update 表名 set 列名 = 值 where条件表达式;
update students set name = '新名字' where age = 36;
-- 带条件删除 delete from 表名 where 条件表达式;

delete from students where age = 36;

三、表的删除
-- 直接删除表
drop table ssss;
-- 删除表中所有内容的两种方式:

-- 删除表,有多少行就删除多少次,效率低
delete from 表名;
-- 删除表,一次性删除,效率较高(相当于一次性删除表,然后再创建一张一样的表);
truncate  表名;

3. DQL

MySql条件判断的逻辑符号和Java相比有几个比较特别:

比较运算符含义
>= ,<= , != , <> , = , > , <具有大于等于和小于等于,没有==符号,<> 和 !=都表示不等于
Between…and…在…与…之间,如between 100 and 600
In判断是否在某集合中,如 IN (100,200,300)
Like, %, _Like用于模糊查询,意为像…的
IS NULL判断某列是不是空值
比较运算符含义
and 或 &&逻辑与
or 或 ||逻辑或
not 或 !逻辑非
表中的查询
-- 无条件查询所有数据 select * from 表名
select * from students;

-- 带条件查询 select * from student where条件表达式(*表示所有,查询所有内容)
-- 查询所有年龄大于10的学生的所有信息
select * from students where age>10;
-- 查询所有生日在这两天之间的学生的所有信息

select * from students where birthday between '1997-12-01' and '1998-05-06';
-- 查询姓黄,且名字是三个字的人,一个 _ 代表了一个字符。
select * from students where name like "黄__"
-- 查询名字是三个字的人,且中间一个是黄的人
select * from students where name like "_黄_"
-- 查询名字中含黄的人,不限长度,%代表任何字符(长度不限),也可以是没有字符;
select * from students where name like "%黄%"
-- 查询年龄大于10且姓名三个字,姓为相的学生的生日信息;
select birthday from students where age >10 and name like "相__";

-- 查询指定列别名 select 列名 as 列别名 from 表 where条件表达式(as可以省略)
select * as all from students where age >18;

-- 查询结果参与运算 select 列名+运算符  列别名 from 表明 where条件表达式
select age+1 newage from students ; -- 查询所有学生的姓名并将结果+1的值作为新列名,如果不给别名,新的列名就是age+1

--剔除重复的结果 select distinct * from 表名;
select distincet age from students;


-- 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值