Java学习笔记34(sql基础 :增删改查1)
create database qy97;/*创建数据库*/ use qy97; /*使用数据库 use 数据库名*/ show tables; /*查看所有的表*/ select database();/*查看当前所在的数据库*/ /*================================================== 1.创建表*/ /*创建表stu*/ /*创建表格式: create table 表名( 列名1 数据类型 约束 , 列名2 数据类型 约束, 列名3 数据类型 约束 ) PRIMARY KEY 设置为主键,确保数据的唯一性*/ /*创建表stu,列名1为id,列名2为name,并设置id为主键 设置为主键的列数据不能为空 */ create table stu( id int primary key auto_increment, /*primary key auto_increment这句话的意思是id设置为主键,并实现自动增长*/ name varchar(50) ); desc stu;/*查看表的结构*/ drop table stu;/*删除数据表*/ /*=================================================== 2.修改表结构*/ create table users( id int primary key auto_increment, name varchar(50), address varchar(50) ); desc users; /*添加列 alter table 表名 add 列名 数据类型 约束*/ alter table users add sex varchar(20); /*修改列(在原有的列上修改属性,修改列的数据类型 约束) alter table 表名 modify 修改的列名 数据类型 约束*/ alter table users modify sex int; desc users; /*修改列名 alter talbe 表名 change 旧列名 新列名 数据类型 约束*/ alter table users change sex password int ; desc users; /*修改表:删除列 alter table 表名 drop 要删除的列名*/ alter table users drop password; desc users; /*修改表名 rename table 旧表名 to 新表名;*/ rename table users to student; show tables; /*===================================================== 3.修改表中数据*/ /*向表中添加数据*/ create table shop( # 设置主键自动增长 id int primary key auto_increment, # 设置约束为非空 name varchar(50) not null , price double ); /*向表中加入数据 insert into 表名(列名1,列名2,列名3) value (值1,值2,值3); 应注意值与列数据类型,位置对应*/ insert into shop (id,name,price) value (1,'小米',999.99); insert into shop (id,name,price) value (2,'华为',989.89); /*当表中的每一列都给出数据时,可以不写列名 insert into 表名 value (值1,值2,...);*/ insert into shop value (3,'电脑',5555.55); /*因为表中id设置为主键自动增长,因此不写主键的值时,会自动增加 添加的数据值会与前面的列名匹配,当没有列没有设置约束非空,也没有添加值时,默认为null*/ insert into shop(name, price) value('电视',33.3); /*向表中批量添加多组数据 insert into 表名(列名...) values (值...), (值...), (值...);*/ insert into shop(name,price) values ('冰箱',43.44),/*这里id自动增长*/ ('空调',643.9); /*修改表中数据 update 表名 set 列名=值 where 条件 where 条件 数据中的唯一性*/ update shop set price=50 where id=3; update shop set name='洗衣粉',price=5 where id=5; /*修该表中数据条件的写法 id=6; 等于 不要写== id<>6;不等于 id>=6; 与或非&|! &&要写成and ||要写成or !要写成not id in(1,3,5,7);包含 */ update shop set price=3000 where id=2 or id=6; update shop set name='康帅博' where id in(1,4,7,5,6); /*删除表中数据 delete from 表名 where 条件 drop table 表名 删除整个数据表 还有一个truncate方法也是删除,区别在于删除后重新建表自增重新开始,而delete方法不影响自增 */ delete from shop where id=8; drop table shop; /*================================================= 4.查询表中数据*/ show tables; insert into student values (1,'张','河南'), (2,'赵','郑州'), (3,'王','洛阳'), (4,'李','洛阳'); insert into student(id,name) value (5,'孙'); insert into student(id,name) value (6,'胡'); insert into student value (7,'sun','南阳'); /*查询表中所有数据 select * from 表名*/ select * from student; /*查询表中指定条件的数据 select 列名 from 表名 where 条件*/ select name from student where id=2; select name,id from student where address='洛阳'; /*查询去掉重复记录 DISTINCT 关键字 跟随列名*/ select distinct address from student; /*查询列并对结果集重新命名,只是对结果集的列名重新命名,表中的列名并不改变 select 列名 AS '新列名' from 表名; 注意新列名要加''*/ select name AS '姓名' from student; select * from student; /*查询数据中直接对结果进行结果计算*/ select id+100 as 'sum' from student where name='张'; /*查询满足条件的所有数据*/ select * from student where address='洛阳'; /*查询id在2-4之间的数据*/ select * from student where id>=2 and id<=4; /*上面语句还可以用between来查询*/ select * from student where id between 2 and 4; /*查询id不是3的名字*/ select name from student where id !=3; /*查询id在1,2,4中任意一个的所有信息*/ select * from student where id=1 or id=2 or id=4; /*上面语句用in语句*/ select * from student where id in (1,2,4); /*like模糊查询 配合通配符 只要地址有洛字的都查出来*/ select * from student where address like '%阳%'; /*查询名字 三个字符的*/ select * from student where name like'___'; /*插询地址不为空的所有信息*/ select * from student where address is not null;