MySQL 데이터베이스

MySQL 데이터베이스 (에)

MySQL의 데이터 유형 : 숫자 형식, 날짜와 시간, 문자열

(1) 숫자 형식

참고 : BIT 저장 비트 데이터 형식 필드 값 및 지원의 MyISAM, MEMORY, InnoDB의 및 BDB 테이블

유형 크기 범위 (서명) 범위 (서명) 용도
TINYINT 1 바이트 (-128,127) (0255) 작은 정수 값
SMALLINT 2 바이트 (-32 768,32 767) (0.65 535) 대형 정수 값
MEDIUMINT 3 바이트 (-8 388 608,8 388 607) (경우 0 777 215) 대형 정수 값
INT 또는 INTEGER 4 바이트 (-2 147 483 648,2 147 483 647) (0.4 294 967 295) 대형 정수 값
BIGINT 8 바이트 (854 775 807 223 372 036 -9,223,372,036,854,775,808,9) (709 551 615 446 744 073 0,18) 최대 정수 값
흙손 4 바이트 (E -3402 + 823 466 38 494 351 -1175 E-38) 0, (E-1175 494 351 823 466 351 E + 38 38,3.402) 0 (E-1175 494 351 823 466 38,3.402 E + 38) 단일 정밀도
부동 소수점 값
더블 8 바이트 (-1,797 693 134 862 315 7 308 + E, -2 225 073 858 507 201 308 E-4) 0 (2,225 073 858 507 201 4-E 308,1.797 693 134 862 315 7 308 + E) 0 (2,225 073 858 507 201 4-E 308,1.797 693 134 862 315 7 308 + E) 배정 밀도
부동 소수점 값
소수 DECIMAL (M, D) 중, M은> D가, M + 2, 그렇지 않은 경우 D + 2 M 및 D의 값에 따라 M 및 D의 값에 따라 작은 값

2, 날짜 및 시간 유형

주 : 유형마다 유효한 값의 범위 값 및 지정된 불법 MySQL의 값을 표시 할 수없는 "제로"의 "제로"값을 갖는다.

유형 크기
(바이트)
범위 체재 용도
날짜 1000년 1월 1일 / 9999-12-31 YYYY-MM-DD 날짜 값
시각 '-838 : 59 : 59'/ '838 : 59 : 59' HH : MM : SS 시간 값 또는 기간
1 2,155분의 1,901 YYYY 연도 값
날짜 시간 8 1000년 1월 1일 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분 7초 GMT 2038 1 월 19 일 이른 아침 3시 14분 7초

YYYYMMDD HHMMSS 날짜와 시간 값을 혼합, 타임 스탬프

 3, 문자열 형

참고 : 1, BINARYVARBINARY CHAR 및 VARCHAR과 유사, 그들이 포함 된 것을 제외하고는 바이너리 스트링 이 아닌 비 바이너리 문자열을. 즉, 그들은 포함 바이트 문자열 이 아닌 문자 문자열을 . 이것은 그들이 더가 없다는 것이다 문자 집합 및 정렬과 비교 칼럼에 기초하는 값 수치 바이트 . BINARY 키워드는 대소 문자를 구분합니다.

유형 크기 용도
255 바이트 고정 길이 문자열
VARCHAR 65535 바이트 가변 길이 문자열
TINYBLOB 255 바이트 이진 문자열에 더 이상 255 자 없다
얼룩 65535 바이트 바이너리 형태로 긴 텍스트 데이터
MEDIUMBLOB 0-16777215 바이트 중간 길이의 형태로 진 텍스트 데이터
LONGBLOB 0-4294967295 바이트 바이너리 형태로 큰 텍스트 데이터
TINYTEXT 255 바이트 짧은 텍스트 문자열
본문 65535 바이트 긴 텍스트 데이터
MEDIUMTEXT 0-16777215 바이트, 중간 길이 텍스트 데이터
LONGTEXT 0-4294967295 바이트 큰 텍스트 데이터

테이블의 데이터 테이블, 쿼리 데이터 테이블 데이터를 작성 MySQL을하면 데이터의 데이터를 정렬하려면

첫째, 테이블의 구조 :

1 데이터 테이블 표 이름 테이블 칼럼 (열), 행 (데이터베이스 기록), 인덱스 (색인 기본 키 인덱스 필드를 유지하는 테이블이며, 점 기록 엔티티 테이블), 기본값 ( DEFAULT)

2、表中的列(column)字段名(column_name)和字段属性(column_type):数据类型、“索引”(primary keyunique、index)、AI(自增,具有AI属性的列必须要建索引且该列的值必须是唯一的)、“约束”(BIN-二进制数据、UN-无符号数据、ZF-zero fill 填充0)

二、数据表操作指令

0、创建和选择数据库(database)

mysql> CREATE DATABASE RUNOOB;
mysql> use RUNOOB;

 1、创建指令,(在MySQL控制台,; 是命令终止符 -> 是换行符标识,enter键换行

mysql> CREATE TABLE runoob_tbl(
   -> runoob_id INT NOT NULL AUTO_INCREMENT,
   -> runoob_title VARCHAR(100) NOT NULL,
   -> runoob_author VARCHAR(40) NOT NULL,
   -> submission_date DATE,
   -> PRIMARY KEY ( runoob_id )
   -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、查看数据表指令

# 查看数据库中所有的数据表 
mysql>show tables;
# 查看数据库中表名为stations的数据表 
mysql>desc stations;

3、删除数据表

# 删除数据库中的数据表 
mysql>DROP TABLE runoob_tbl;

4、数据表中的数据发生变化

4.1、向数据表中特定的列插入数据

mysql> INSERT INTO runoob_tbl 
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 PHP", "菜鸟教程", NOW());

4.2、更新数据表中的数据

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

4.3、删除数据表中的数据

DELETE FROM table_name [WHERE Clause]

5、select查询数据表数据

5.1、读取数据表信息

mysql> select * from runoob_tbl;

5.2、使用where语句查询数据表中的数据。WHERE 子句的字符串比较是不区分大小写的,可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。

SELECT column_name,column_name
FROM table_name(table_name1, table_name2...
[WHERE Clause(condition1 [AND [OR]] condition2.....)]
[LIMIT N][ OFFSET M]

 注:

  1、可以使用一个或者多个表,表之间使用逗号(,)分割

  2、WHERE语句设定查询条件

  3、LIMIT 属性来设定返回的记录数

  4、OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0

5.3、使用'like'语句作为where的字句,用百分号 %字符来表示任意字符

mysql> SELECT * from runoob_tbl  WHERE runoob_author LIKE '%COM';

5.4、使用union语句查询多个数据表的数据并删除重复数据;union ALL语句查询多个数据表的数据并返回重复数据

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country; 

 

SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country; 

6、利用order by 字句将select查询数据表数据排序之后再返回

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

 注:

  1、ASC表示升序排序,DESC表示降序排列

  2、可以设定多个字段来排序

7、GROUP BY语句根据一个或多个列的结果集进行分组,function可以是COUNT, SUM, AVG等函数,coun(*):计算有多少条记录,sum(column_name) as column_name_count

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

 统计每个name有多少条记录

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;

 WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…);coalesce 可以取代 NUll 的名称

mysql> SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

mysql> SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

 

추천

출처www.cnblogs.com/yinminbo/p/11790803.html