对数据库的一些简单操作

my1l操作:
对库的操作:
查看数据库:show databases;
创建数据库:create database lol;
删除数据库:drop database;
切换到某个数据库:use MySchool;
对表的操作:
查看表结构:describe subject;
查看建表语句:show create table subject;
删除表:drop table if exists grade;
创建表:CREATE TABLE IF NOT EXISTS grade(
GradeID INT(4) PRIMARY KEY,
GradeName VARCHAR(10)
);
UNSIGEND:无符号的,声明该数据不允许出现负数
AUTO_INCREMENT:自动增长,通常用于设置主键,且为整数类型,可定义起始值和步长
comment:注释

修改表属性:
ALTER TABLE
删除表对应的列:
alter table 表名 drop column 列名;
在表中增加列:
alter table 表名 add column 列名 属性;
alter table student modify StudentNo int(4) primary key auto_increment;
修改字段名的属性
alter table 表名 modify 字段名 类型;

修改subject表中gradeid为3的列的subjectno为3:
update subject set subjectno=3 where gradeid=3;

创建外键:
1.创建子表的同时创建外键
CREATE TABLE student(
studentno INT(4) PRIMARY KEY,
studentname varchar(20) NOT NULL default ‘’,
sex tinyint(1) default 1,
gradeid int(10),
phone varchar(50) not null,
address varchar(255),
borndate datetime,
email varchar(50),
identityCard varchar(18) not null,
constraint FK_gradeid foreign key(gradeid) references grade(gradeid)
);
2.创建子表完毕后,修改子表添加外键
CREATE TABLE student(
studentno INT(4) PRIMARY KEY,
studentname varchar(20) NOT NULL default ‘’,
sex tinyint(1) default 1,
gradeid int(10),
phone varchar(50) not null,
address varchar(255),
borndate datetime,
email varchar(50),
identityCard varchar(18) not null
);
alter table student
add constraint FK_gradeid foreign key(gradeid) references grade(gradeid);
constraint:约束
删除具有主外键关系的表时,要先删子表,后删主表
删除外键
alter table student drop foreign key FK_gradeid;
alter table student drop index FK_gradeid; 删除索引
备份test表到tmp_test:
create table tmp_test as select * from test;

DML:
INSERT INTO

删除:
#删除全部数据(不带where条件的delete)
DELETE FROM test2;

#删除表全部数据(truncate),自增值恢复到初始值重新开始
TRUNCATE TABLE test2;
TRUNCATE命令用于完全清空表数据,但表结构、索引、约束等不变
与DELETE命令的异同:
相同:都能删除数据、不删除表结构,但TRUNCATE速度更快
不同:使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器
使用TRUNCATE TABLE不会对事务有影响

#创建两个表,分别是InnoDB类型、MyISAM类型
CREATE TABLE table1(
id INT(4) PRIMARY KEY AUTO_INCREMENT,
col1 VARCHAR(20) NOT NULL
)ENGINE=INNODB;
CREATE TABLE table2(
id INT(4) PRIMARY KEY AUTO_INCREMENT,
col1 VARCHAR(20) NOT NULL
)ENGINE=MYISAM;
INSERT INTO table1(col1) VALUES(‘row1’),(‘row2’),(‘row3’);
INSERT INTO table2(col1) VALUES(‘row1’),(‘row2’),(‘row3’);
#清空表数据
DELETE FROM table1;
DELETE FROM table2;
#重启数据库服务后,table1:1 2 3 ; table2:7 8 9
#同样使用delete from清空表数据,对于INNODB的表,自增列从初始值开始
#而MYISAM类型的表,自增列从上一个自增列的数据基础上开始

模糊查询 between and \ like \in \null

查询姓李同学的学号及姓名
like结合使用:%(0到任意字符)(一个字符)
SELECT studentno,studentname
FROM student
WHERE studentname LIKE ‘李%’;
查询姓李的,但是名字中只有一个字
SELECT studentno,studentname
FROM student
WHERE studentname LIKE '李
’;
查询姓李的,但是名字中只有两个字
SELECT studentno,studentname
FROM student
WHERE studentname LIKE ‘李__’;
查询姓名中有文字的同学
SELECT studentno,studentname
FROM student
WHERE studentname LIKE ‘%文%’;

获取当前日期:
select curdate()

获取当前时间:
select curtime()

获取当前日期和时间:
select now()

将student表中的studentName、phone字段数据保存到新表phonelist中:
create table phonelist(select studentname,phone from student);

查询所需要的的外键
SELECT * FROM KEY_COLUMN_USAGE;
SELECT TABLE_SCHEMA,table_name,constraint_name,referenced_table_schema,referenced_table_name
FROM key_column_usage WHERE referenced_table_name=‘grade’;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值