>데이터 베이스 >MySQL 튜토리얼 >기본 mysql 구문 알아보기

기본 mysql 구문 알아보기

巴扎黑
巴扎黑원래의
2017-06-23 11:10:401624검색

머리말

mysql

mysql 구문--이 글은 Navicat Premium(데이터베이스 관리 도구) 을 사용하여 학습합니다.

이 연구는 주로 두 부분으로 구성됩니다.

  1. 사용자 생성, 데이터베이스 생성, 사용자에게 권한 할당 및 사용자 권한 삭제.

  2. MYSQL의 일반적인 데이터 유형

3. 테이블 - 테이블, 기본 키, 외래 키 생성

4. 데이터베이스 설계의 세 가지 주요 패러다임

다음 코드는 모두 다음과 같습니다. all in mysql 구문을 사용하여 새 쿼리 테이블을 편집합니다.

1. 사용자를 생성하고, 데이터베이스를 생성하고, 사용자에게 권한을 할당하고, 사용자 권한을 삭제합니다.
/* SQL 여러 줄 주석*/
-- SQL 한 줄 주석

Create user: CREATE USER 'username'@'hostname' IDENTIFIED BY 'password'; 비어 있으며, 기본값은 % 권한입니다. 이는 모든 호스트가 연결할 수 있음을 의미합니다. : 배포 권한: 分 데이터베이스 이름에 대한 권한 부여 이는 사용자 이름@호스트 이름
사용자 권한 삭제
: 데이터베이스 이름에 대한 권한 취소 데이터베이스 생성: CREATE DATABASE [IF NOT EXISTS] 데이터베이스 이름 [CHARACTER SET[=] 'UTF8'];
   <<<[IF NOT EXISTS]를 생략하고 데이터베이스를 반복적으로 생성할 때 오류가 보고되는 경우 !
이 머신의 모든 데이터베이스 쿼리: SHOW DATABASES
mydb 데이터베이스 사용 ↓, 이는 다음 쿼리가 기본적으로 mydb 데이터베이스를 대상으로 한다는 의미입니다
USE mydb;

Query 데이터베이스 모든 데이터 테이블: SHOW TABLES [FROM 데이터베이스]



2 MYSQL

의 일반적인 데이터 유형
 
1. 문자 유형:

   ① CHAR(N): N개의 고정 길이를 갖는 문자열입니다. 길이가 충분하지 않으면 공백이 자동으로 채워집니다.
   ② VARCHAR(N): 문자 바이트를 저장합니다. 가변 길이. 일반적으로 사용되는 0~255;
③ TEXT: 가변 길이 문자열을 저장합니다. (기사 및 기타 큰 콘텐츠 단락을 게시할 때 일반적으로 사용되는 문구) 0~((2^16-1)*10^2);
  4 TINYTEXT:0~((2^8-1)*10);
   ⑤ MEDIUMTEXT:0~ ((2^24-1)*10^3); ⑥ LINGTEXT:0~((2^32-1)*10^4)
7 enum("남성", "여성"): 열거 유형인 경우 필드는 열거된 데이터만 수용할 수 있습니다.


2. 형태 지정:
① TINYINT: 부호 없음 0~2^8-1 부호 있음 -2^7~2^7-1
② SMALLINT: 부호 없음 0~2^16-1 부호 있음 -2^15 ~2^15-1;
③ MEDIUMINT: 부호 없음 0~2^24-1 부호 있음-2^23~2^23-1;
④ INT: 부호 없음 0~2^32-1 부호 있음 -2^31~2 ^31-1이 가장 일반적으로 사용됩니다!
⑤ BIGINT: Unsigned 0~2^64-1 Signed -2^63~2^63-1;


3. 부동 소수점 유형:
① FLOAT: 소수점 이하 유효 숫자 7자리까지 정확할 수 있음 ;
② DOUBLE: 소수점 이하 15~16자리까지 정확할 수 있습니다.


IV. 날짜 및 시간 데이터 유형
참고: 시간 저장은 문자열이나 타임스탬프를 사용하므로 데이터베이스에서는 날짜 유형이 거의 사용되지 않습니다.
① DATE : 날짜와 시간 데이터를 저장
② TIMESTAMP : DATE보다 정확함


  
 【Create table

  CREATE TABLE [IF NOT EXISTS] 폼명 (
 IF NOT EXISTS는 생략 가능하며, 생략하면 다시 생성할 때 에러가 발생합니다. 생략되지 않으면 테이블 생성 시 해당 테이블이 이미 존재하는지 확인합니다. 테이블이 존재하면 더 이상 create 문이 실행되지 않습니다.
  정의 컬럼: 컬럼 이름 데이터 유형 목록 키워드
  )
 자주 사용하는 컬럼 정의 키워드:
   ① UNSIGNED: 목록을 부호 없는 열로 설정합니다. 유형이 숫자인 컬럼만 설정할 수 있습니다
    ② AUTO_INCREMENT PRIMARY KEY는 해당 컬럼을 자동 증가 컬럼으로 설정합니다. 자동 증가 열은 기본 키여야 합니다.
          ③ NOT null: 열을 null이 아닌 제약 조건으로 설정합니다.
              UNIQUE: 고유 제약 조건을 설정합니다. 이 필드에는 중복된 값이 나타날 수 없습니다.
​ ​ ⑤ DEFAULT: 기본값 제약 조건을 설정합니다.


【기본 키

   1. 기본 키에 대한 주의사항은 무엇인가요? 기본 키는 기본적으로 비어 있습니다! 기본 키 기본 고유성 제약 조건! ㅋㅋㅋ 2. 기본 키를 설정하는 방법은 무엇입니까?
열 정의에서 설정 : Age Smallint (3) 기본 키,
innodb 데이터베이스 엔진만이 외래 키를 수정합니다. 외래 키의 유형과 참조 열의 유형이 동일해야 합니다. (숫자형은 길이가 같고 unsigned가 동일해야 하며, 문자열은 길이가 동일해야 하며 길이는 다를 수 있습니다.)
   ③ 외래키가 설정된 필드에는 인덱스가 있어야 합니다. 인덱스가 없을 경우 외래키 설정 시 자동으로 인덱스가 생성됩니다.

2. 외래 키 설정 구문은 무엇인가요? ㅠㅠ             in in in in 3. 외래 키 제약 조건에 대한 참조 무결성 작업 REFERENCES 참조 테이블(참조 필드) [ON DELETE SET NULL on update CASCADE]
   참조 연산: 참조 테이블의 참조 필드가 삭제되거나 업데이트될 때 외래 키 테이블에서 외래 키를 처리하는 방법입니다. ㅋㅋㅋ 통해 다시 홀더로 ‐     통해                                                                                                ~ >                                                                         s ' out's ‐ ‐ ‐ null 설정                                                    
CREATE TABLE IF NOT EXISTS tb1( 
-- IF NOT EXISTS 可以省略,省略后重复创建报错.如果不省略,则创建时会检测表是否已存在,如果表存在则不再执行创建语句id INT(3),
    `name` VARCHAR(255) NOT null, -- name是系统关键字,所以使用反引号``包裹age SMALLINT(3) AUTO_INCREMENT PRIMARY KEY,
    lalala INT UNIQUE,
 height DOUBLE(3,2) DEFAULT 1.2 -- 设置默认值约束:默认值为1.2-- PRIMARY KEY(age));create table if not exists classes(
 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  classname VARCHAR(255) NOT NULL );CREATE table if not EXISTS `user`(
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    clsId INT UNSIGNED,
    `name` VARCHAR(255) NOT NULL, CONSTRAINT user_fk_classes FOREIGN KEY (clsid) REFERENCES classes(id) ON DELETE SET NULL on update CASCADE)-- auto_increment-- 显示表结构SHOW TABLES;-- 显示表内容结构SHOW COLUMNS FROM TB1;-- 现实表的建表语句show create TABLE tb1;-- 删除表DROP TABLE IF EXISTS TB1;DROP TABLE IF EXISTS classes;DROP TABLE IF EXISTS `user`;-- 修改表名 ALTER table tb1 rename tb2;-- 修改字段 列-- alter table 表名 change 旧列名 新列名 列定义 [first|after某一列]-- first 将这个字段调整为表格第一列; after某一列: 将这个字段放到某一列后面alter table tb1 change height width VARCHAR(200) not NULL FIRST; 



-- 删除表中某一列alter table tb1 drop name;-- 新增一列:必选部分:alter table tb1 add haha DOUBLE(8,2)alter table tb1 add haha DOUBLE(8,2) DEFAULT 1.2 after age;-- 新增多列:不能调整列的位置,只能插在最后。alter table tb1 add (
    ha1 DOUBLE(3,2) UNSIGNED,
    ha2 VARCHAR(255)
);-- 同时修改多表明  rename table tb3 to tb1[,`USER`to user1];rename table tb2 to tb1,`USER`to user1;-- 增加主键约束alter table tb1 add PRIMARY KEY(id);-- 删除主键约束alter table tb1 drop PRIMARY KEY;-- 新增唯一性约束ALTER table tb1 add unique key(ha1);-- 删除唯一性约束:由于创建唯一性约束会默认创建索引,所以删除时,需删除索引ALTER table tb1 drop index ha1;    
-- 设置默认值约束:前提必须设置default 属性ALTER table tb1 alter ha1 set default 20;-- 删除默认值约束ALTER table tb1 alter haha drop default;-- 设置外键约束 必选部分  alter table tb1 add  foreign key (clsid)REFERENCES classes(id)alter table tb1 add constraint waijianming foreign key (clsid)REFERENCES classes(id) ON DELETE SET NULL on update CASCADE;-- 删除外键约束,由于常见外键时会生成索引,所以删除外键后,需要删索引。alter table tb1 drop foreign key waijianming;alter table tb1 drop INDEX waijianming;

SHOW COLUMNS FROM TB1;

3. 테이블 - 테이블, 기본 키, 외래 키 생성
4 데이터베이스의 세 가지 주요 패러다임

1. 데이터 테이블의 각 열(필드)은 non이어야 합니다. -detachable 포인트의 가장 작은 단위. 이는 각 열의 원자성을 보장하기 위한 것입니다. ???? 통해 통해 오른쪽 통해 오프 ' 's' ' 통해 아웃' ' 통해 통해 아웃'' 통해‐‐‐‐ ‐‐‐‐‐‐ 함께 13181621008'
열, 모두 기본 키에 종속되어야 하며 기본 키와 관련되지 않은 열이 있을 수 없습니다. 즉, 표는 한 가지만 설명합니다. ~ 통과 통과 통과 통과 통과 – – ‐ ‐ 아래로 통과,
따라서 주문 정보와 제품 정보는 동일한 테이블에 나타날 수 없습니다.

3. 제3정규형(3NF): 테이블의 각 열은 기본 키와 간접적으로 관련되지 않고 직접적으로 관련되어야 합니다. (테이블의 각 열은 기본 키에만 의존할 수 있습니다.)
예: 주문 테이블에서 지점 고객 테이블 다음에는 고객 관련 정보가 필요합니다. 주문 테이블에는 사용자 ID만 있으면 됩니다. 다른 고객 정보는 있을 수 없습니다. 다른 사용자 정보는 주문 ID가 아닌 사용자 ID와 직접적인 관련이 있기 때문입니다.


[제2정규형과 제3정규형의 본질적인 차이점]
은 두 개의 테이블이 없다는 점입니다. .
세 번째 정규형에서는 여러 테이블을 나누어야 하며, 한 테이블은 다른 테이블의 ID(기본 키)만 가질 수 있고 다른 정보는 가질 수 없습니다(다른 모든 정보는 다른 테이블의 기본 키를 사용해야 함). )






공부하면서 노트에 틀린 부분이 있을 수 있으니 비판과 지적은 환영합니다.

매일 반성하고 복습하며 조금씩 얻어가세요--------- 더 나은 자신을 기대합니다

위 내용은 기본 mysql 구문 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.