注意!!!mysql中的所有语句后面都要加;才能运行,不然可能会报错
前面讲了mysql的安装,现在这节来复习,sql的使用。包括创建数据库,创建表(包含导入表、创建表头然后一个一个添加 ),
数据库的创建
CREATE DATABASE db_name;
这样就ok了
在数据库中输入这句话,我们就可以创建一个数据库了,此时库内空的,后面需要我们创建一个又一个的表放在里面。
表的创建
1 直接创建
例如我们要创建这样一个表,我们就可先创建一个这样的表头,然后再insert内容就好了(注意这里在创建表之间要先 《use 数据库名称》,这样会进入到那个数据库中,然后才能进行创建)
create table Student(
SId varchar(10),
Sname varchar(10),
Sage datetime,
Ssex varchar(10)
);
然后接下来就是往表中添加内容了
insert into Student values('01' , '赵雷' , '1990-01-01' , '男');
insert into Student values('02' , '钱电' , '1990-12-21' , '男');
insert into Student values('03' , '孙⻛' , '1990-12-20' , '男');
insert into Student values('04' , '李云' , '1990-12-06' , '男');
insert into Student values('05' , '周梅' , '1991-12-01' , '⼥');
insert into Student values('06' , '吴兰' , '1992-01-01' , '⼥');
insert into Student values('07' , '郑⽵' , '1989-01-01' , '⼥');
insert into Student values('09' , '张三' , '2017-12-20' , '⼥');
insert into Student values('10' , '李四' , '2017-12-25' , '⼥');
insert into Student values('11' , '李四' , '2012-06-06' , '⼥');
insert into Student values('12' , '赵六' , '2013-06-13' , '⼥');
insert into Student values('13' , '孙七' , '2014-06-01' , '⼥');
成功之后是这样的
然后我们可以查看我们创建的内容
这里语法是 SELECT * FROM 表名;
SELECT * FROM Student;
然后这样我们就创建好了。
2 导入创建
这样创建可能会有点麻烦,如果我们有一个csv文件,我们就可以直接导入创建了。
例如我现在有一个csv文件
现在我把这个拖入
然后就会出现这个,其实这里是把文件放到了虚拟机的缓存系统中。(如果有错误可能是虚拟机没设置好,可以查看下虚拟机设置看这里是否勾选了启用拖放)
然后‘/tmp/VMwareDnD/bXo7An/test1.txt.txt’这个就是他的真实地址,我们可以查看
然后我们可以使用(这里也会报错,因为要有一个权限被打开才行)
在/etc/my.cnf文件中添加下面这句话,然后再以mysql --local-infile=1 -u root -p这样打开sql
[mysqld]
local_infile = 1
这个是导入时的语法
LOAD DATA local INFILE '数据地址' INTO TABLE 要创建的数据名称 FIELDS TERMINATED BY ',' ;
这个和上面一样也要先创建表头
CREATE TABLE students(
id VARCHAR(255) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
age INT,
gender VARCHAR(255),
clazz VARCHAR(255)
);
然后在导入我们的本地数据
LOAD DATA LOCAL INFILE '/tmp/VMwareDnD/bXo7An/test1.txt.txt' INTO TABLE students FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
增加一列
alter table students add length float;
如下图所示:
删除列
alter table students drop length;
删除表
DROP TABLE students;
修改列中某个元素的值
语法
UPDATE 表名
SET 列名 = 新值
WHERE 条件;
示例
PRIMARY KEY 标识
PRIMARY KEY 是一列或一组列,其值唯一标识表中的每一行。一个表只能有一个PRIMARY KEY。在表创建时,可以指定其中的一列为主键,也可以使用多列来组合作为主键。对于多列组合主键,它们的值的组合必须是唯一的。
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
从下面我可以看到,我输入id的大小不会自动排序,但是我输入一个重复的id就会报错。而其他普通元素就可以重复。
KEY AUTO_INCREMENT标识
AUTO_INCREMENT是一种MySQL特有的属性,它允许一个整数列自动增长,每次插入新行时自动递增。这通常用于为表创建一个唯一的、自动生成的数字标识符。必须将AUTO_INCREMENT属性与INTEGER数据类型一起使用,通常是使用INT或BIGINT数据类型。
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50)
);
在上面的代码中,每次插入一行时,MySQL将自动为id列生成一个新的唯一值,而不需要手动为该列指定一个值。这使得插入新行时更加方便,同时也确保每个行都有一个唯一的标识符。
UNIQUE标识
这个和上面的差不多,但是这个可能稍弱一点,只是限制不能有重复的。
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE
);
假设有一个“学生”数据表,其中包含学生ID、姓名和电子邮件地址。为了确保每个学生的电子邮件地址是唯一的,可以在“电子邮件地址”列上创建UNIQUE约束。
FOREIGN KEY使用
假设有一个“订单”数据表和一个“产品”数据表,其中“订单”表包含订单ID、订单日期和产品ID,而“产品”表包含产品ID、产品名称和产品价格。为了确保订单中的每个产品ID都是有效的,可以在“订单”表中为“产品ID”列创建FOREIGN KEY约束,该约束参照“产品”表中的“产品ID”列。
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(50) NOT NULL,
price DECIMAL(8, 2) NOT NULL
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
order_date DATE NOT NULL,
product_id INT,
FOREIGN KEY (product_id) REFERENCES products(product_id)
);
在上面的代码中,我们创建了一个名为“products”的数据表和一个名为“orders”的数据表,并在“orders”表中为“product_id”列创建了一个FOREIGN KEY约束。这将确保订单中的每个产品ID都是有效的,并且参照了“products”表中的产品ID列。