หน้าแรก
หน้าแรก
ด้วยความช่วยเหลือของคำสั่ง INSERT INTO คุณสามารถแทรกแถวใหม่ลงในตารางได้ ไวยากรณ์ INSERT INTO table_name values(value1,value2,…) ตัวอย่าง สมมติว่าเรามีตารางชื่อ Employee ซึ่งมีสามคอลัมน์คือ Emp_id, Emp_name และ Emp_Sal จากนั้นด้วยความช่วยเหลือของแบบสอบถามต่อไปนี้ เราสามารถเพิ่มแถวใหม่ลงในตารา
ฟังก์ชัน MySQL LAST_INSERT_ID() ใช้เพื่อรับหมายเลขลำดับที่สร้างล่าสุดโดย AUTO_INCREMENT ตัวอย่าง ในตัวอย่างนี้ เรากำลังสร้างตารางชื่อ Student ซึ่งมีคอลัมน์ AUTO_INCREMENT เราแทรกค่าสองค่าในคอลัมน์ ชื่อ และเมื่อเราใช้ฟังก์ชัน INSERT_LAST_ID() ฟังก์ชันจะส่งคืนหมายเลขลำดับที่สร้างล่าสุด เช่น 2 mysql>
ดังที่เราทราบแล้วว่าฟังก์ชัน MySQL LAST_INSERT_ID() ส่งคืนหมายเลขลำดับที่สร้างล่าสุด แต่ในกรณีที่มีการแทรกหลายแถว มันจะส่งคืนหมายเลขลำดับที่สร้างโดย สำคัญที่สุด แทรกแถว ตัวอย่าง mysql> Insert into Student(Name) values('Ram'),('Mohan'),('Aryan'); Query OK, 3 rows affected
ฟังก์ชันสตริง ASCII() ใน MySQL ส่งคืนรหัสตัวเลข ASCII ของอักขระที่ระบุ ไวยากรณ์ ASCII(str) ที่นี่ str อาร์กิวเมนต์ของฟังก์ชัน ASCII() คือสตริงที่มีค่า ASCII ของอักขระตัวแรกที่จะดึงข้อมูล กล่าวถึงในที่นี้ว่าจะส่งกลับรหัสตัวเลขทางซ้ายของอักขระสูงสุด กล่าวคือ อักขระตัวแรกของสตริงที่กำหนดให้เป็นอาร์กิ
ในกรณีนี้ MySQL จะส่งคืนข้อความแสดงข้อผิดพลาดเนื่องจากเรารู้ว่าหากใช้ sub-query เพื่อกำหนดค่าใหม่ในส่วนคำสั่ง SET ของคำสั่ง UPDATE จะต้องส่งคืนหนึ่งแถวสำหรับแต่ละแถวในตารางการอัพเดทที่ตรงกับส่วนคำสั่ง WHERE . ตัวอย่าง mysql> insert into info(id, remarks) values(5,'average'); Query OK, 1 r
จริงๆ แล้วประเภทข้อมูล VARCHAR จะเก็บข้อมูลอักขระที่มีความยาวผันแปรได้ในรูปแบบไบต์เดียวและหลายไบต์ ไวยากรณ์สำหรับประเภทข้อมูลนี้คือ VARCHAR(n) โดยที่ n คือจำนวนอักขระสูงสุดและต้องเป็น ระบุไว้ในขณะที่สร้างตาราง ก่อน MySQL 5.03 ค่าของ n สามารถอยู่ในช่วง 0 ถึง 255 แต่ในและหลัง MySQL 5.03 ค่าสามารถอยู่ใ
ด้วยความช่วยเหลือของข้อความค้นหาต่อไปนี้ เราจะเห็นชุดอักขระทั้งหมดที่ MySQL รองรับ − mysql> Show Character Set; +-----------+-----------------------------+---------------------+--------+ | Charset | Description | Default collation &nb
ด้วยความช่วยเหลือของคีย์เวิร์ด DISTINCT ในคำสั่ง SELECT เราจะได้รับแถวที่ไม่ซ้ำในชุดผลลัพธ์ MySQL ตัวอย่าง mysql> Select * from names; +------+-----------+ | id | name | +------+-----------+ | 1 | Rahul | | 2 | Gaurav &nbs
เราสามารถใช้คำสั่ง DELETE ร่วมกับส่วนคำสั่ง WHERE ซึ่งระบุแถวนั้น เพื่อลบแถวออกจากตาราง MySQL ตัวอย่าง mysql> Select * from names; +------+-----------+ | id | name | +------+-----------+ | 1 | Rahul | | 2 | Gaurav | |
แบบสอบถามด้านล่างจะส่งคืนชื่อของฐานข้อมูลพร้อมกับชุดอักขระเริ่มต้น - mysql> SELECT SCHEMA_NAME 'Database', default_character_set_name 'charset' FROM information_schema.SCHEMATA; +--------------------+---------+ | Database | Charset | +-----------
ต่อไปนี้เป็นแบบสอบถามเพื่อตรวจสอบชุดอักขระเริ่มต้นของฐานข้อมูล MySQL โดยเฉพาะ - mysql> SELECT SCHEMA_NAME 'DatabaseName', default_character_set_name 'Charset' FROM information_schema.SCHEMATA where schema_name = 'db_name'; ตัวอย่าง ตัวอย่างเช่น แบบสอบถามด้านล่างจะส่งกลับช
ต่อไปนี้เป็นแบบสอบถามเพื่อตรวจสอบชุดอักขระของคอลัมน์ของตาราง MySQL - mysql> Select Column_name 'Column', Character_set_name 'Charset' FROM information_schema.columns where table_schema = 'db_name' and table_name ='t
เราสามารถใช้คำสั่ง DELETE ร่วมกับส่วนคำสั่ง WHERE ซึ่งระบุหลายแถวเหล่านั้น เพื่อลบหลายแถวออกจากตาราง MySQL ตัวอย่าง mysql> Select * from names; +------+-----------+ | id | name | +------+-----------+ | 1 | Rahul | | 2 | Gaurav &nb
ด้วยความช่วยเหลือของแบบสอบถาม MySQL ต่อไปนี้ เราสามารถตรวจสอบชุดอักขระของตารางทั้งหมดในฐานข้อมูลเฉพาะ - mysql> Select TABLE_NAME, CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.Columns Where TABLE_SCHEMA = 'db_name'; ตัวอย่าง ตัวอย่างเช่น เคียวรีด้านล่างส่งคืนชุดอักขระของตารางทั้งหมดในฐานข้อม
ลำดับของคอลัมน์ในส่วนคำสั่ง SET ของคำสั่ง UPDATE มีความสำคัญเนื่องจาก MySQL ให้ค่าที่อัพเดตแก่ชื่อคอลัมน์ที่ใช้ในนิพจน์ ใช่ มันจะสร้างความแตกต่างอย่างมากในชุดผลลัพธ์ที่ส่งคืนโดย MySQL ต่อไปนี้เป็นตัวอย่างเพื่อให้ชัดเจน - ตัวอย่าง ในตัวอย่างนี้ เรากำลังมีตาราง ประกวดราคา อันดับแรก เราจะเขียนคำสั่ง U
MySQL NOW() และ SYSDATE() ฟังก์ชันจะคืนค่าการประทับเวลาปัจจุบัน แต่ผลลัพธ์ของทั้งคู่ขึ้นอยู่กับเวลาดำเนินการ สิ่งนี้สร้างความแตกต่างอย่างมากระหว่างพวกเขา ฟังก์ชัน NOW() ส่งคืนค่าเวลาคงที่ซึ่งระบุเวลาที่คำสั่งนั้นเริ่มทำงาน ในทางตรงกันข้าม ฟังก์ชัน SYSDATE() จะส่งกลับเวลาที่ถูกต้องที่คำสั่งดำเนินการ
ค่าที่มีอยู่ของแถวสามารถใช้เพื่อระบุค่าใหม่ในส่วนคำสั่ง SET หากแถวนั้นตรงกับส่วนคำสั่ง WHERE ในคำสั่ง UPDATE ต่อไปนี้เป็นตัวอย่างที่แสดงให้เห็น ตัวอย่าง สมมติว่าเรามีตารางชื่อ tender ดังนี้ − mysql> Select * from tender; +-----------+---------+------+ | tender_id | company | rate | +-----------+
เนื่องจากเราทราบดีว่ารูปแบบเริ่มต้นสำหรับประเภทข้อมูล MySQL DATE คือ “YYYY-MM-DD” และในรูปแบบนี้ จึงไม่มีความเป็นไปได้ที่จะเก็บค่าเวลา แต่ถ้าเราเก็บวันที่พร้อมกับค่าเวลาในคอลัมน์ที่มีประเภทข้อมูล DATE แล้ว MySQL จะแสดงคำเตือนและเก็บเฉพาะค่าวันที่ในคอลัมน์นั้น ตัวอย่างต่อไปนี้จะแสดงให้เห็น - ตัวอย่าง
สำหรับการอัปเดตค่าในตาราง MySQL หนึ่งตารางโดยใช้ค่าจากตาราง MySQL อื่น เราจำเป็นต้องใช้ sub-query เป็นนิพจน์ใน SET clause ของคำสั่ง UPDATE ตัวอย่าง ในตัวอย่างนี้ เรามีสองตาราง นักเรียน และ ข้อมูล เราจะอัปเดตค่าคอลัมน์ เกรด ของตาราง นักเรียน โดยใช้ค่าจากคอลัมน์ หมายเหตุ ของตาราง ข้อมูล mysql> sel
ตามชื่อที่แนะนำ การเปิดใช้งานโหมด SQL ALLOW_INVALID_DATES จะทำให้เราสามารถจัดเก็บวันที่ที่ไม่ถูกต้องในตารางได้ ตัวอย่างได้รับด้านล่างเพื่อทำความเข้าใจ − ตัวอย่าง mysql> SET sql_mode = ALLOW_INVALID_DATES; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> Insert Into detail_bday(Name, Bir