Mysql学习笔记-ch1-数据记录常见操作

– mysql 学习笔记

– 关系型数据库

– 一、如何使用终端操作数据库?
cd C:\Program Files\MySQL\MySQL Server 5.7\bin

– 1、如何登陆数据库服务器?
win:~mysql -u root -p123456

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql -u root -p
Enter password: ******
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

C:\Program Files\MySQL\MySQL Server 5.7\bin>net start mysql
请求的服务已经启动。

– 2、如何查询数据库服务器中的所有数据库?
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| mysqllearning |
| performance_schema |
| sakila |
| sys |
| test |
| world |
±-------------------+
8 rows in set (0.00 sec)

– 3、如何选中某一个数据库进行操作?
mysql> select * from sys;
ERROR 1046 (3D000): No database selected

mysql> use mysqllearning
Database changed

– SQL 语句中的查询
mysql> select * from test;
±-----±-------+
| id | itname |
±-----±-------+
| 11 | ran |
| 3 | xiao |
| 8 | zhang |
| 5 | su |
±-----±-------+
4 rows in set (0.00 sec)

mysql> select * from test where id<8;
±-----±-------+
| id | itname |
±-----±-------+
| 3 | xiao |
| 5 | su |
±-----±-------+
2 rows in set (0.00 sec)

– 如何退出数据库服务器?
mysql> exit;
Bye

–如何在数据库服务器中创建我们的数据库?
mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> use test
Database changed

– 如何查看某个数据库中所有的数据表?
mysql> show tabels;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘tabels’ at line 1

mysql> show tables;
Empty set (0.00 sec)

– 如何创建一个数据表?
mysql> create table pet(
-> name varchar(20),
-> owner varchar(20),
-> species varchar(20),
-> sex char(1),
-> birth date,
-> death date);
Query OK, 0 rows affected (0.07 sec)

– 查看数据表是否创建成功
mysql> show tables;
±---------------+
| Tables_in_test |
±---------------+
| pet |
±---------------+
1 row in set (0.00 sec)

– 查看创建好的数据表的结构
mysql> describe pet;
±--------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±--------±------------±-----±----±--------±------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
±--------±------------±-----±----±--------±------+
6 rows in set (0.00 sec)

– 如何查看数据表中的记录?
mysql> select * from pet;
Empty set (0.00 sec)

– 如何往数据表中添加数据记录呢?
mysql> insert into pet
-> values(“Puffball”,“Diane”,“hamster”,“f”,“1999-03-30”,null);
Query OK, 1 row affected (0.00 sec)

– 再一次查询?
mysql> select * from pet;
±---------±------±--------±-----±-----------±------+
| name | owner | species | sex | birth | death |
±---------±------±--------±-----±-----------±------+
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
±---------±------±--------±-----±-----------±------+
1 row in set (0.00 sec)

– 如何增加新的数据记录?
mysql> insert into pet
-> values(“旺财”,“周星驰”,“dog”,“male”,1990-01-01,null);
ERROR 1366 (HY000): Incorrect string value: ‘\xCD\xFA\xB2\xC6’ for column ‘name’ at row 1

– 如何解决“incorrect string”的报错?
mysql> alter table pet convert to character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.20 sec)
Records: 1 Duplicates: 0 Warnings: 0

– 继续看看其他类型的报错
mysql> insert into pet
-> values(“wangcai”,“周星驰”,“dog”,“male”,“1990-01-01”,null);
ERROR 1406 (22001): Data too long for column ‘sex’ at row 1

mysql> insert into pet
-> values(“旺财”,“周星驰”,“dog”,“m”,1990-01-01,null);
ERROR 1292 (22007): Incorrect date value: ‘1988’ for column ‘birth’ at row 1

– 终于正确
mysql> insert into pet
-> values(“旺财”,“周星驰”,“dog”,“m”,“1990-01-01”,null);
Query OK, 1 row affected (0.01 sec)

mysql> select * from pet;
±---------±-------±--------±-----±-----------±------+
| name | owner | species | sex | birth | death |
±---------±-------±--------±-----±-----------±------+
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
| 旺财 | 周星驰 | dog | m | 1990-01-01 | NULL |
±---------±-------±--------±-----±-----------±------+
2 rows in set (0.00 sec)

– mysql 常用数据类型有哪些?

– MySQL支持多种类型,大致可以分为三类:

create tables testType(
number TINYINT
);
insert into testType values(127);

mysql> insert into testType values(128);
ERROR 1264 (22003): Out of range value for column ‘number’ at row 1

– 还原试错过程
– 用词需准确,table而非tables
mysql> create tables testType(number TINYINT);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘tables testType(number TINYINT)’ at line 1
– 未选定拟操作的数据表库
mysql> create table testType(number TINYINT);
ERROR 1046 (3D000): No database selected
– 选定数据表库
mysql> use test
Database changed

– 创建成功
mysql> create table testType(number TINYINT);
Query OK, 0 rows affected (0.15 sec)

– 描述数据表库内容
mysql> show tables;
±---------------+
| Tables_in_test |
±---------------+
| pet |
| testtype |
±---------------+
2 rows in set (0.00 sec)

– 描述表格内容
mysql> describe testType;
±-------±-----------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±-------±-----------±-----±----±--------±------+
| number | tinyint(4) | YES | | NULL | |
±-------±-----------±-----±----±--------±------+
1 row in set (0.01 sec)

– 增加数值记录
mysql> insert into testType values(127);
Query OK, 1 row affected (0.00 sec)

– 超出数值范围报错
mysql> insert into testType values(128);
ERROR 1264 (22003): Out of range value for column ‘number’ at row 1

– 数值
类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值
DOUBLE 8 字节 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

– 日期/时间

类型 大小
(字节) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4
1970-01-01 00:00:00/2038
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
YYYYMMDD HHMMSS 混合日期和时间值,时间戳

– 字符串(字符)类型

类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65 535字节 二进制形式的长文本数据
TEXT 0-65 535字节 长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据

– 数据类型如何选择?
日期 选择按照格式
数值和字符串 按照大小!

– 如何插入以下数据记录?

insert into pet values(“Fang”,“Benny”,“dog”,“m”,“1990-03-01”,null);
insert into pet values(“Buffy”,“Harold”,“dog”,“f”,“1989-05-13”,null);
insert into pet values(“Bowser”,“Diane”,“dog”,“f”,“1979-08-31”,“1995-07-29”);

mysql> insert into pet values(“Fang”,“Benny”,“dog”,“m”,“1990-03-01”,null);
Query OK, 1 row affected (0.01 sec)

mysql> insert into pet values(“Buffy”,“Harold”,“dog”,“f”,“1989-05-13”,null);
Query OK, 1 row affected (0.01 sec)

mysql> insert into pet values(“Bowser”,“Diane”,“dog”,“f”,“1979-08-31”,“1995-07-29”);
Query OK, 1 row affected (0.00 sec)

mysql> select * from pet;
±---------±-------±--------±-----±-----------±-----------+
| name | owner | species | sex | birth | death |
±---------±-------±--------±-----±-----------±-----------+
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
| 旺财 | 周星驰 | dog | m | 1990-01-01 | NULL |
| Fang | Benny | dog | m | 1990-03-01 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | f | 1979-08-31 | 1995-07-29 |
| Bowser | Diane | dog | f | 1979-08-31 | 1995-07-29 |
±---------±-------±--------±-----±-----------±-----------+
6 rows in set (0.00 sec)

– 如何删除数据?
delete from pet where name=“Bowser”

mysql> delete from pet where name=“Bowser”;
Query OK, 2 rows affected (0.01 sec)

mysql> select * from pet;
±---------±-------±--------±-----±-----------±------+
| name | owner | species | sex | birth | death |
±---------±-------±--------±-----±-----------±------+
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
| 旺财 | 周星驰 | dog | m | 1990-01-01 | NULL |
| Fang | Benny | dog | m | 1990-03-01 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
±---------±-------±--------±-----±-----------±------+
4 rows in set (0.00 sec)

– 如何修改数据?

update pet set name=“旺旺财” where owner=“周星驰”;

mysql> update set name=“旺旺财” where owner=“周星驰”;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘set name=“旺旺财” where owner=“周星驰”’ at line 1

mysql> update pet set name=“旺旺财” where owner=“周星驰”;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

– 总结一下:数据记录常见操作?
– 增加
insert
– 删除
delete
– 修改
update
– 查询
select

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种开源的关系型数据库管理系统,它支持多种操作系统,并且广泛应用于Web应用程序的后端数据存储。MySQL的DDL(Data Definition Language)是用于定义和管理数据库结构的基础操作。 以下是MySQL中DDL的基础操作: 1. 创建数据库:使用CREATE DATABASE语句可以创建一个新的数据库。例如,CREATE DATABASE mydatabase; 2. 删除数据库:使用DROP DATABASE语句可以删除一个已存在的数据库。例如,DROP DATABASE mydatabase; 3. 创建表:使用CREATE TABLE语句可以创建一个新的数据表。在CREATE TABLE语句中,需要指定表名和表的列及其属性。例如,CREATE TABLE mytable (id INT, name VARCHAR(50)); 4. 删除表:使用DROP TABLE语句可以删除一个已存在的数据表。例如,DROP TABLE mytable; 5. 修改表结构:使用ALTER TABLE语句可以修改已存在的数据表的结构,包括添加、修改和删除列等操作。例如,ALTER TABLE mytable ADD COLUMN age INT; 6. 添加主键:使用ALTER TABLE语句可以为数据表添加主键约束,以确保每行数据的唯一性。例如,ALTER TABLE mytable ADD PRIMARY KEY (id); 7. 添加外键:使用ALTER TABLE语句可以为数据表添加外键约束,以确保与其他表的关联完整性。例如,ALTER TABLE mytable ADD FOREIGN KEY (customer_id) REFERENCES customers(id); 8. 创建索引:使用CREATE INDEX语句可以为数据表创建索引,以提高查询性能。例如,CREATE INDEX idx_name ON mytable (name); 这些是MySQL中DDL的基础操作,通过这些操作可以定义和管理数据库的结构。如果你有更具体的问题或者需要了解更多高级的DDL操作,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值