MYSQL

1.查看mysql数据库版本

mysql --version

2.登录mysql

MySQL -u root -p

3.查看mysql数据库

SHOW DATABASES;

4.选择数据库

use 数据库名;

5.查看表

show tables;

6.新建数据库

CREATE NEW_DATABASE_NAME;

7.新建表,以学生表为例

CREATE TABLE student(
   id INT PRIMARY KEY, ##PRIMARY KEY能唯一表示每一笔数据的属性。也就是说id的数据不能出现重复。
   name VARCHAR(20),
   major VARCHAR(20),   score INT
);
##PRIMARY KEY的第二种写法:
student(
   `id` INT
   `name` VARCHAR(20),
   `major` VARCHAR(20),
   `score` INT,
   PRIMARY KEY(`id`)
);

8.插入数据(INSERT INTO)

INSERT INTO `student`  VALUES(1,'小白','英语',90); #按顺序插入数据
INSERT INTO `student`(`name`,`major`,`id`,`score`)  VALUES(`小红`,`数学`,2,89);#自定义插入顺序。
INSERT INTO `student`(`major`,`id`,`score`) VALUES(`语文`,`3`80);#这样子写的话由于没有定义name,因此数据表中name的值为NULL。

9.查看学生表

SELECT * FROM `student`; ##通过这个命令来查看和检查学生表所有数据。

10.constraint 限制,约束

student(
id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL, ##值不能为空。
major VARCHAR(20) UNIQUE,  ##值不能重复。
score INT
);

11.修改、删除数据

##修改表名
rename table `student` to `student_info`;

##把major等于英语的数据全部改成英语文学。
UPDATE `student`
SET `major` = '英语文学' 
WHERE `major` = 英语;

##把major=‘生物’或major=‘化学’的数据改成生化。
UPDATE `student`
SET `major` = '生化'
WHERE `major` = `生物` OR major = `化学`;

##把student_id = 1的学生的名字改为‘小辉’、课程改为‘物理’。
UPDATE `student`
SET `name = '小辉’,`major` = '物理' #中间用逗号隔开。WHERE `student_id` = 1;

##如果不用WHERE,执行如下命令,则会把该属性的值全部修改。
UPDATE `student`
SET `major` = '物理';

##如果需要新增一个列并同时设置其为AUTO_INCREMENT,可以在ALTER TABLE语句中使用ADD子句
ALTER TABLE table_name ADD new_id INT AUTO_INCREMENT PRIMARY KEY;

使用DISTINCT关键字:在SQL查询中,使用DISTINCT关键字可以去除查询结果中的重复记录。例如,SELECT DISTINCT column_name FROM table_name可以返回指定列中的唯一值。

##删除student表中,id=4的所有数据。
DELETE FROM `student`
WHERE student_id = 4;

##删除课程为物理且分数为80的数据。
DELETE FROM `student`
WHERE `major` = '物理' AND `score` = 80;

##删除把分数小于等于60的数据。
DELETE FROM `student`
WHERE `score` < 60;  ##比较符号有:>,>=,<,<=,<>不等于。

##删除表内所有数据。
##DELETE FROM `student`;


13.给字段添加约束条件,唯一性、主键、外键、自增、非空等约束

如果表已经创建但没有包含AUTO_INCREMENT属性,可以通过ALTER TABLE语句来添加。

例如,将为id字段添加自增属性。

ALTER TABLE my_table MODIFY id INT AUTO_INCREMENT PRIMARY KEY;

如果需要新增一个列并同时设置其为AUTO_INCREMENT,可以在ALTER TABLE语句中使用ADD子句:

ALTER TABLE table_name ADD new_id INT AUTO_INCREMENT PRIMARY KEY;

14.查询数据(SELECT)


##查看student表所有数据。
SELECT * FROM `student`

##查询student表中所有学生的名字。
SELECT `name` FROM `student`;
##查询表中所有学生的名字和课程。
SELECT `name`,`major` FROM `student`;

##查询student表中所有学生的名字并按分数从高到低排序。
SELECT `name` FROM `student` ORDER BY `score` DESC;
##查询student表中所有学生的名字并按分数从低到高排序。
SELECT `name` FROM `student` ORDER BY `score` ASC; ##默认值为ASC,由低到高。

##先根据分数排序,如果出现分数一样的则按照id排序。
SELECT * FROM `student` ORDER BY `score`,`student_id`;

##如果觉得查询的数据太多,通过LIMIT来限制输出的数据数量。
SELECT * FROM `student` ORDER BY `score` LIMIT 2        ##输出结果为分数最低的两名同学的数据。
SELECT * FROM `student` ORDER BY `score` DESC LIMIT 2;  ##输出学生成绩为前三名的同学的数据。

##输出课程为英语且分数大于等于60的学生的数据。
SELECT * FROM `student` WHERE `major` = '英语' AND `score` >= 60;

##查询主修英语或历史或生物的学生的数据。
SELECT * FROM `student`
WHERE `major` IN('英语','历史','生物');  ##第一种写法。

SELECT * FROM `student`
WHERE `major` = '英语' OR '历史' OR '生物';##第二种写法。

上述内容把SQL的增删查改都涉及了,建表时,主键的定义,字段或属性的约束、限制(NOT NULL,UNIQUE);修改、删除时,update、set、delete、where的使用;and、or、比较符的使用。查询数据时,SELECT FROM、ORDER BY的使用;使用DESC ASC LIMIT来对输出结果进行限制。

15.设置外键

foreign key(class_id) references Class(id) ON UPDATE CASCADE ON DELETE CASCADE;

class_id 是 student 表中的外键,它引用了 course 表中的 id 主键。

ON UPDATE CASCADE 和 ON DELETE CASCADE 是可选的级联操作,分别表示当父表中的主键更新或删除时,子表中的外键值也会相应地更新或删除。

Comments

  1. Owner
    Windows Chrome
    3 months ago
    2024-11-09 0:16:09

    123

    来自广东
  2. Owner
    Windows Chrome
    2 months ago
    2024-12-03 1:28:10

    2024.1203

    来自广东

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next