SQL的常用操作
一、登录
以管理者身份进入cmd
登录语句
mysql -uroot -p1234
二、库的相关操作
创建数据库
create database 数据库名称;
查看已有数据库
show databases;
删除数据库
drop database 数据库名称;
切换数据库:在使用之前需要先进入到要操作的数据库中
use 数据库名称;
三、表的基本操作
创建数据表,创建数据表时要注意对一些条件的约束
create table 表名(字段名,数据类型 , 字段名,数据类型...);
这是一个最基础的sql建表语句
CREATE TABLE t_user
(
id INT,
username VARCHAR(32),
password VARCHAR(32),
phone VARCHAR(11)
);
查看所有数据表
show tables;
查看表的字段信息
desc 表名;
修改表名
alter table student rename stu;
删除数据表
drop table 表名;
修改表的字段名,属性名不修改也不能为空,不变即可
alter table student change name sname varchar(20);
修改字段数据类型
alter table stu modify sname int;
指定位置添加新属性
alter table 表名 add 新属性名 数据类型 [约束条件] [first|after] 已存在的属性名;
改变属性的位置
alter table 表名 modify 属性1 数据类型 first|after 属性2;
删除字段
alter table 表名 drop 属性名;
三、对元组的操作
插入单条数据
insert into 表名 (属性名) values (内容);
插入多条数据
insert into 表名 (属性名) values (内容1),(内容2),(内容3);
在用逗号分割的文件中读取数据插入表
load data local infile '文件名' into 表名 character set gdk fields terminated by ',';
更新表中元组数据
update 表名 set 字段名1=内容1,字段名2=内容2 where 过滤条件;
删除指定元组数据
delete from 表名 where 条件语句;
示例:
delete from product where product.model NOT IN (SELECT model FROM printer );
四、数据表的约束
1.主键约束(主键可以有多个)
主键指的是表中一列或者多列的组合,Primary key constraint 要求主键列的数据唯一,并且不为空。主键可以唯一的标识表中的每一条数据,可以结合外键来定义与不同数据表的关系(通过外键约束完成)。
主键可以由多字节联合组成,下列方法二中就是多字节联动作为主键。
方法一:
create table student(
id int primary key,
name varchar(20)
);
方法二:
create table student01(
id int
name varchar(20),
primary key(id,name)
);
2.外键约束
含义:外键约束是用来在两个表的数据之间建立连接,它可以是一列或者多列,一个表中可以有一个或多个外键。
3.非空约束
字段名 数据类型 NOT NULL;
4.默认值约束
示例:
create table student03(
id int,
name varchar(20),
gender varchar(10) default 'male'
#gender这个值就默认是male
);
MySQL 中常用的约束:
NOT NULL约束:确保某列不能有 NULL 值。
DEFAULT 约束:当某列没有指定值时,为该列提供默认值。
UNIQUE 约束:确保某列中的所有值是不同的。
PRIMARY Key 约束:唯一标识数据库表中的各行/记录。
CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。
约束条件 说明
PRIMARY KEY 主键约束用于唯一标识对应的记录
FOREIGN KEY 外键约束
NOT NULL 非空约束
UNIQUE 唯一性约束
DEFAULT 默认值约束,用于设置字段的默认值
数据库题解(一些想不出来的操作)
1.删除某一行的中文数据
delete from tablename where length(maker)!=char_length(maker);
2.请将型号不在printer中的型号对应的元组从product表删除
delete from prodect from where prodect.model not in (select model from priter);
3.需要对数据进行排序时可以在末尾加上 order by …;
select price from pc where price<1000 order by price;
4.查询有同样处理速度和内存大小的pc对(只需给出对应的model对,显示为 modela modelb,按前面的modela,modelb排序,),每对只列表1次,即:(i,j)给出了则不给出(j,i)
select pca.model as modela,pcb.model as modelb from pc as pca,pc as pcb where pca.speed=pcb.speed and pca.ram=pcb.ram and pcb.model < pca.model order by modela;
5.找出恰好出售2种型号的PC的厂商
select maker from pc natural join project group by maker having count(model)=2;