記事ディレクトリ
- 序文
- MySQL整数型
- MySQLの文字列型
- MySQL 10 進数型
- MySQL の時間タイプ
- よく使用される基本的な SQL ステートメント
- 詳細
-
- データベースの概念
- SQLでよく使われる3つの部分
- SQLとJAVAのデータ型の比較
- データベースの操作の開始と停止
- リモートデータベースに接続する
- 接続データベース
- データベースリストを表示する
- データベースを作成する
- テーブルを作成する前にテーブルが存在するかどうかを確認し、存在する場合は削除します。
- データベースを削除する
- データベースを削除する前に存在を確認する
- データ作成時にエンコードを設定する
- データベースのエンコーディングを変更する
- データベースの入力または切り替え
- 現在のデータベース情報を表示する
- 現在のデータベース内のすべてのテーブルを表示する
- 制約のないテーブルを作成する
- 制約のあるテーブルを作成する
- 注釈付きテーブルを作成する
- テーブル情報を表示する
- テーブル情報をより直感的に表示
- より直感的で詳細なテーブル情報の表示
- テーブルフィールドの追加
- テーブルフィールドとコメントを追加する
- テーブルフィールドのデータ型を変更する
- テーブルフィールドのデータ型とフィールド名を変更する
- テーブルフィールドのデータ型、フィールド名、コメントを変更する
- テーブルフィールドを削除する
- テーブル名を変更する
- テーブルのコメント情報を変更する
- テーブルの削除
- テーブルを削除する前に確認してください
序文
1.
SQL
ステートメントでは大文字と小文字が区別されません。
MySQL整数型
シリアルナンバー | データの種類 | データ範囲 |
---|---|---|
1 | タイイント | -128~127 |
2 | スモールント | -32768~32767 |
3 | ミディアムミント | -2 23~2 23-1 |
4 | INT | -2 31~2 31-1 |
5 | BIGINT | -2 63~2 63-1 |
MySQLの文字列型
シリアルナンバー | データの種類 | データ範囲 | 使用 |
---|---|---|---|
1 | CHAR(n) | 0~255バイト | 固定長の文字列 |
2 | VARCHAR(n) | 0~65535バイト | 長い文字列 |
3 | 文章 | 0~65535バイト | 長いテキストデータ |
4 | 長文 | 0~2^32-1バイト | 非常に大きなテキストデータ |
5 | BLOB | 0~65535バイト | バイナリの長いテキストデータ |
6 | 肺ブロブ | 0~2^32-1バイト | バイナリの非常に大きなテキスト データ |
MySQL 10 進数型
シリアルナンバー データの種類 データ使用量 データ範囲 1 浮く 浮動小数点(m,n) 有効数字 7 桁 2 ダブル ダブル(m,n) 有効数字 15 桁 3 10進数 10 進数(m,n) 有効数字 28 桁
m
浮動小数点数の全長を示し、n
小数点以下の有効桁数を示します。
MySQL の時間タイプ
シリアルナンバー | データの種類 | フォーマット | 使用 |
---|---|---|---|
1 | 日付 | YYYY-MM-DD | 日付 |
2 | 時間 | 時:MM:SS | 時間 |
3 | 年 | YYYY | 年 |
4 | 日付時刻 | YYYY-MM-DD HH:MM:SS | 日時 |
5 | タイムスタンプ | 10 桁または 13 桁の整数 (秒数) | タイムスタンプ |
よく使用される基本的な SQL ステートメント
シリアルナンバー | SQL文 | 使用 | 説明する | シリアルナンバー | SQL文 | 使用 | 説明する |
---|---|---|---|---|---|---|---|
1 | mysql -u root -p |
接続するMySQL |
コマンド ライン ウィンドウにコマンドを入力し、Enterキーを押してからパスワードをmysql -u root -p 入力し(パスワードを見つけるのが面倒なので忘れないようにしてください)、Enter キーを押して接続します。初期状態ではユーザーログインが使用されますが、仕事中ずっとユーザーログインを使用できるわけではありません。権限が大きすぎるとリスクが大きいため、適切な権限を持つユーザーを作成した後は、そのユーザーに頻繁にログインしないでください。MySQL MySQL root root root root |
2 | create database test_db; |
データベースを作成する | — |
3 | show databases; |
すべてのデータベースを表示する | — | 4 | create database MyDB_two character set utf8; |
データベース作成時に文字コードを設定する | character set と省略できますcharset 。 |
5 | show create database MyDB_two; |
データベースのエンコード方式を表示する | — | 6 | alter database MyDB_one character set utf8; |
データベースのエンコーディングを変更する | — |
7 | use MyDB_one |
データベースの入力または切り替え | データベースの入力または切り替えに使用しますuse [数据库名] 。初めて接続するときはMySQL 、どのデータベースにもアクセスしていません。特定のデータベースを使用したい場合は、そのデータベースに入る必要があります。use [数据库名] このコマンドの後のセミコロンは省略できます。これはSQL ステートメント内でセミコロンを省略できる唯一のステートメントです。 |
8 | select database(); |
現在のデータベースを表示 | データベースにアクセスすると、select database(); 現在どのデータベースにいるかを確認できます。データベースを長時間運用する場合、多数のデータベースを切り替えて運用した後、現在のデータベースを確認し、誤ったデータベースを運用しないようにしてください。 |
9 | show tables; |
現在のデータベース内のテーブルを表示する | — | 10 | create table phone_table(pid INT, name CHAR(20), price INT); |
テーブルを作成する | — |
11 | show create table phone_table; |
テーブル情報を表示する | テーブルのフィールド、エンジン、デフォルトの文字エンコーディングなどの情報をshow create table [表名]; 表示できます。MySQL データベース情報の表示と同様に、show 作成したデータテーブルの情報のみが表示され、作成と同時に表示することはできません。 |
12 | desc phone_table; |
テーブル情報をより直感的に表示 | — |
13 | alter table phone_table add color CHAR(20); |
テーブルフィールドの追加 | — | 14 | alter table phone_table drop price; |
テーブルフィールドを削除する | — |
15 | alter table phone_table modify name VARCHAR(12); |
テーブルフィールドのデータ型を変更する | — | 16 | alter table phone_table change name pname CHAR(18); |
テーブルフィールドのデータ型とフィールド名を変更する | — |
17 | drop table phone_table; |
テーブルの削除 | — | 18 | --- |
— | — |
詳細
データベースの概念
1、结构化查询语言(
Structured Query Language
)简称SQL
;
2、数据库管理系统(Database Management System
)简称DBMS
;
3、数据库管理员(Database Administration
)简称DBA
,功能是确保DBMS
的正常高效运行。
SQL常用的3个部分
1、数据查询语言(
DQL
): 其语句也称“数据库检索语句”,用以从表中获得数据,保留字SELECT
经常使用,DQL
也是所有SQL
中用的最多的,其他保留字还有WHERE
,ORDER BY
,GROUP BY
和HAVING
这些保留字还与DML
一起使;
2、数据操作语言(DML
): 其余局包括动词INSERT
,UPDATE
和DELETE
。他们分别用于添加,修改和删除表中的行。也称动作语言;
3、数据定义语言(DDL
):DDL
主要用于操作数据库。
SQL与JAVA的数据类型对比
MySQL | Java |
---|---|
INT |
int |
BIGINT |
long |
DECIMAL |
BigDecimal |
DATE/DATETIME |
java.util.Date |
VARCHAR |
String |
数据库的启停操作
MySQL
在系统启动时,会自动启动服务,无需手动启动了。
当然也可以手动启动或停止服务,以管理员身份运行cmd
执行如下指令即可。
停止服务
net stop mysql80
启动服务
net start mysql80
连接远程数据库
mysql [-h 127.0.0.1] [-P 3306] -u root -p
-h
:MySQL
服务所在的主机IP
-P
:MySQL
服务端口号, 默认3306
-u
:MySQL
数据库用户名
-p
:MySQL
数据库用户名对应的密码
[]
内为可选参数,如果需要连接远程的MySQL
,需要加上这两个参数来指定远程主机IP
、端口,如果
连接本地的MySQL
,则无需指定这两个参数。
连接地数据库
mysql -u root -p
root
是用户名。语句末尾不能加分号,否则报错,这是MySQL
唯一加分号报错的SQL
语句。
查看数据库列表
show databases;
创建数据库
create database 数据库名称;
创建表之前检查是否已存在,如果存在就移除
create database if not extists 数据库名;
删除数据库
drop database 数据库名称;
删除数据库前检查是否存在
drop database if exists 数据库名称;
创建数据时设置编码
create database 数据库名称 character set utf8;
character set
可以缩写成charset
。
修改数据库编码
alter database 数据库名称 character set utf8;
进入或切换数据库
use 数据库名称
使用
use 数据库名称
进入或切换数据库。
刚连接上MySQL
时,没有处于任何一个数据库中,如果要使用某一个数据库,就需要进入到这个数据库中。
use 数据库名
这个命令后面的分号可以省略,这是SQL
语句中唯一可以省略分号的语句。
显示当前数据库信息
select database();
进入数据库中,可以使用
select database();
来查看当前处于哪个数据库。长时间操作数据库时,在很多数据库中来回切换后,查看当前的数据库,避免操作错了数据库。
查看当前数据库的所有表
show tables;
创建非约束表
create table 表名称(id INT, name CHAR(20), price INT);
创建一张带有三个字段的表。
id
字段的类型为INT
;
name
字段的类型为CHAR(20)
;
pric
字段的类型为INT
。
创建带约束的表
create table 表名称(id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25) UNIQUE, email VARCHAR(25) NOT NULL, age INT DEFAULT 17);
表的约束
1、非空约束:NOT NULL
,不允许某列的内容为空;
2、设置列的默认值:DEFAULT
;
3、唯一约束:UNIQUE
,该表中,该列的内容必须唯一;
4、主键约束:PRIMARY KEY
,非空且唯一;
5、主键自增长:AUTO_INCREMENT
,从1
开始,步长为1
;
6、外键约束:FOREIGN KEY
,A
表中的外键列。A
表中的外键列的值必须参照于B
表中的某一列(B
表主键)。
创建带注释的表
create table 表名称(id int comment '编号', name varchar(50) comment '姓名', age int comment '年龄', gender varchar(1) comment '性别') comment '用户表';
显示表信息
show create table 表名称;
更直观的显示表信息
desc 表名称;
更直观更详细的显示表信息
show full columns from 表名称;
增加表字段
alter table 表名称 add color CHAR(20);
增加表字段及注释
alter table 表名称 add nickname varchar(20) comment '昵称';
修改表字段的数据类型
alter table 表名称 modify name VARCHAR(12);
修改表字段的数据类型和字段名称
alter table 表名称 change name pname CHAR(18);
修改表字段的数据类型、字段名称和注释
alter table 表名称 change name pname CHAR(18) comment '姓名';
删除表字段
alter table 表名称 drop 字段名称;
修改表名
alter table 表名称 rename to 新表名称;
修改表的注释信息
alter table 表名称 comment '数据表';
删除表
drop table 表名称;
删除表前做校验
drop table if exists 表名称;