MySQL笔记


/*
创建数据库
create database 数据库名;
*/
CREATE DATABASE mybase;


/*
使用数据库
use 数据库名
*/
USE mybase;


/*
创建数据表的格式

  create table 表名(
      列名1 数据类型 约束,
      列名2 数据类型 约束,
      列名3 数据类型 约束
  );
  创建用户表,用户编号,姓名,用户的地址
  将编号列,设置为主键约束,保证列的数据唯一性,非空性
  primary key AUTO_INCREMENT
  让主键列数据,实现自动增长

*/
CREATE TABLE users (
uid INT PRIMARY KEY AUTO_INCREMENT ,
uname VARCHAR(20),
uaddress VARCHAR(200)
);


/*show tables 显示所有数据表
desc users 查看表中结构
drop table users 删除数据表
*/这三个用的不多


CREATE TABLE users (
uid INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(20),
uaddress VARCHAR(200)
);
/*
添加列,添加字段
alter table 表名 add 列名 数据类型 约束
*/
ALTER TABLE users ADD tel INT ;

/*
修改列, 在原有的列上修改
修改列名,数据类型约束
alter table 表名 modify 列名 数据类型 约束
*/
ALTER TABLE users MODIFY tel VARCHAR(50);

/*
修改列名
alter table 表名 change 旧列名 新列名 数据类型 约束
*/
ALTER TABLE users CHANGE tel newtel DOUBLE;

/*
删除列
alter table 表名 drop 列名
*/
ALTER TABLE users DROP newtel;

/*
修改表名
rename table 表名 to 新名
*/
RENAME TABLE users TO newusers

CREATE TABLE product(
-- 主键列,自动增长
id INT PRIMARY KEY AUTO_INCREMENT,
-- 商品名字,可变字符,非空
pname VARCHAR(100) NOT NULL,
-- 商品的价格,double
price DOUBLE
);


/*
向数据表中添加数据 insert
格式:
insert into 表名(列名1,列名2,列名3) values (值1,值2,值3)
注意:
列名,表名问题
对应问题,
个数,数据类型
*/

INSERT INTO product (id,pname,price) VALUES (1,'笔记本',5555.99);
INSERT INTO product (id,pname,price) VALUES (2,'智能手机',9999);

/*
添加数据格式,不考虑主键
格式:
insert into 表名 (列名) values (值)
*/
INSERT INTO product (pname,price) VALUES('洗衣机',800);

/*
添加数据格式,所有值全给出
格式:
insert into 表名 values (全列值)
*/
INSERT INTO product VALUES (4,'微波炉',300.25);

/*
添加数据格式,批量写入
格式:
insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)
*/
INSERT INTO product (pname,price) VALUES
('智能机器人',25999.22),
('彩色电视',1250.36),
('沙发',5899.02)

-- insert into product (pname,price) values ('热水器',485.02)
-- INSERT INTO product (id,pname,price) VALUES (7,'空调',485.02)


/*
对数据进行更新操作
数据在原有的基础上修改
格式:
update 表名 set 列1=值1,列2=值2 where 条件
where 条件: 数据中的唯一性
*/

-- 修改智能手机,价格上调到15999
UPDATE product SET price = 15999 WHERE id=2

-- 修改彩色电视,名字改为黑白电视机,价格,100
UPDATE product SET pname='黑白电视机', price=100 WHERE id = 6

/*
修改条件的写法
id=6
id<>6 不等于
id<=6
与或非 && || ! 这是java里的
&& and SQL里的
|| or
! not

id in (1,3,4,5,6) 包含

*/
-- 将笔记本的价格,和空调的价格,全部修改为2000
UPDATE product SET price = 2000 WHERE id = 1 OR id = 7;

/*
删除表中的数据
格式:
delete from 表名 where 条件

drop table 表名 删除整个数据表

*/
-- 删除热水器
DELETE FROM product WHERE id=8;

面试题:
删除表中所有记录使用delete from 表名; 还是用truncate table 表名;
删除方式:delete 一条一条删除,不清空auto_increment记录数。
truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。


聚合函数:
1,count:统计指定列布为NULL的记录行数;
2,sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
3,max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
4,min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
5,avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;


反引号(“`”)

保留字不能用于表名,比如desc,此时需要加入反引号来区别,但使用表名时可忽略反引号。
create table desc报错
create table desc成功
create table test成功
drop table test成功

保留字不能用于字段名,比如desc,此时也需要加入反引号,并且insert等使用时也要加上反引号。
create table testdesc varchar(255))成功
insert into test(desc) values('fxf')失败
insert into test(desc) values('fxf')成功


使用双字符:
插入时 库中
'aa''b''cc' aa'b'cc
"aa"b""cc" aa"b"cc

使用转义字符():
插入时 库中
'aa'b'cc' aa'b'cc
"aa"b"cc" aa"b"cc

在单引号包裹的字符串中使用双引号、在双引号包裹的字符串中使用单引号 不需要使用双引号或转义字符。
插入时 库中
"aa'b'cc" aa'b'cc
'aa"b"cc' aa"b"cc


你可能感兴趣的:(MySQL笔记)